Функция IdnToAscii - слишком много значений инициализатора
Подскажите пожалуйста, что то я не могу понять:
-Вот предположим я сделал GET запрос на сервер.
-Сервер мне ответил и выслал HTML страницу, сооветвенно я принял этот поток байт и записал его в массив.
-Теперь я разбираю http заголовки и вижу, что сервер указал, что кодировка HTML тела - UTF-16.
Вопрос: а как понять, сколько байт занимает этот присланный UTF-16 символ ? К примеру на Windows - wchar_t занимает 2 байта, на Linux - 4 байта.
И я что то не могу сообразить, вот прислал мне сервер 4 байта в кодировке UTF-16 - как понять - это два символа по 2 байта, или это один символ занимающий 4 бата ?
Ответы (1 шт):
UTF-16 - это всегда два байта на символ.
Вместо дурацкого wchar_t (дурацкого - потому что размер зависит от платформы) используйте char16_t (и std::u16string), или просто std::uint16_t.