Как использовать 3-х и 4-х байтовые символы Unicode со стандартными строками C ++?

В стандартном C ++ мы имеемchar а такжеwchar_t для хранения персонажей.char может хранить значения между0x00 а также0xFF, А такжеwchar_t может хранить значения между0x0000 а также0xFFFF. std::string использованияchar, поэтому он может хранить только 1-байтовые символы.std::wstring использованияwchar_t, так что он может хранить символы до 2-байтовой ширины. Это то, что я знаю о строках в C ++. Пожалуйста, поправьте меня, если я сказал что-то не так до этого момента.

Я читаюстатья для UTF-8 в Википедии, и я узнал, что некоторые символы Юникода занимают до 4-байтового пространства. Например, китайский иероглиф имеет кодовую точку Unicode0x24B62, который занимает 3-байтовое пространство в памяти.

Есть ли контейнер строки STL для работы с такими символами? Я ищу что-то вродеstd::string32, Также у нас былоmain() для точки входа ASCII,wmain() для точки входа с поддержкой 16-битных символов; какую точку входа мы используем для 3-х и 4-х байтового кода, поддерживаемого Unicode?

Можете ли вы добавить крошечный пример?

(Моя ОС: Windows 7 x64)

Ответы на вопрос(5)

Ваш ответ на вопрос