Функция IdnToAscii - слишком много значений инициализатора

Подскажите пожалуйста, что то я не могу понять:

-Вот предположим я сделал GET запрос на сервер.

-Сервер мне ответил и выслал HTML страницу, сооветвенно я принял этот поток байт и записал его в массив.

-Теперь я разбираю http заголовки и вижу, что сервер указал, что кодировка HTML тела - UTF-16.

Вопрос: а как понять, сколько байт занимает этот присланный UTF-16 символ ? К примеру на Windows - wchar_t занимает 2 байта, на Linux - 4 байта.

И я что то не могу сообразить, вот прислал мне сервер 4 байта в кодировке UTF-16 - как понять - это два символа по 2 байта, или это один символ занимающий 4 бата ?


Ответы (1 шт):

Автор решения: HolyBlackCat

UTF-16 - это всегда два байта на символ.

Вместо дурацкого wchar_t (дурацкого - потому что размер зависит от платформы) используйте char16_tstd::u16string), или просто std::uint16_t.

→ Ссылка