Существует ли тип/класс или какой-то подход для работы с Unicode String на С++?
Какой тип/класс строки лучше всего использовать для работы в C++ со строками Unicode? Может, есть какой-нибудь общий, эффективный подход?
Думал в сторону wstring, но, заглянув в Википедию, прочитал следующее:
В Windows API тип wchar_t именуется как WCHAR и имеет фиксированный размер 16 бит, что не позволяет кодировать весь набор символов Unicode (больше 1 миллиона).
После этого задумался, как же это реализовано в QString:
QString хранит строку 16-битных QChar, где каждому QChar соответствует один символ Unicode 4.0. (Символы Unicode со значениями кодов больше 65535 хранятся с использованием суррогатных пар, т.е. двух последовательных QChar.)
Пишу не на Qt... Как быть?
Источник: Stack Overflow на русском