Re[2]: Преобразование символов в UTF-8 ?
От: Cynic Россия  
Дата: 22.03.11 14:55
Оценка:
Здравствуйте, hattab, Вы писали:

H>Во-первых нет никаких символов UTF8. UTF-8 это способ преобразования юникод-кодпоинтов в последовательности байтов.

Угу. Это я так для краткости.

H>Во-вторых, приведенная последовательность (237, 160, 130) некорректна т.к. после байта-маркера начала последовательности (ED) должен следовать байт со значением в диапазоне 80 — 9F (128 — 159).


Символ с кодом 0xEDA082 имеет двоичное представление 11101101 10100000 10000010, что соответствует кодировке UTF-8. Кроме того после ED следует код A0, который лежит в указанном вами диапазоне 80 — 9F. Правда я не понимаю почему байт после байта маркера должен иметь значения именно в диапазоне 80 — 9F, т.к. если учесть, что этот байт кодируется как 10xxxxxx, то он может принимать значения от 10000000 до 10111111, т.е. диапазон будет 80-BF.

H>В-третьих нет ничего удивительно в том, что GetChars для одного юникод-кодпоинта вернет два символа т.к. supplementary-диапазон юникода ( > FFFF) представляется в UTF-16 (а виндовый юникод всегда представлен в UTF-16) в виде суррогатной пары.


Вот тут поподробнее я ни чего не понял
:)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.