Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
Да нет, вот конкретно проблем с нулем у utf8 нет 02.10.09 11:25 Число просмотров: 3212
Автор: amirul <Serge> Статус: The Elderman
|
> То, что помню на вскидку - 0 aka unicode-цифра 0; > и т.п. Это проблема "старших" utf-ов (от 16-ти). Но там без нарушения типизации и не получится обработать массиво wchar_t как массив однобайтовых char-ов.
> Да, это не обычно, но допустимо, судя по rfc. Я конечно > могу ошибаться, но первый байт - определяет язык (в смысле > набор символов) а нуль является дефолтом, который МОЖНО, но > не обязательно пропускать. Да, нет. Единственный код, который может привести к появлению байта-нуля в utf8 потоке - это сам L'\0'. Это достаточно очевидно из таблицы http://en.wikipedia.org/wiki/Utf-8#Description
Символы, меньше 128 кодируются самими собой. При кодировании символов больше или равно 128 первый байт всегда имеет старшие два бита в единицах, остальные - только один старший бит (это в частности сделано для возможности синхронизации потока с любого места) - байт со сброшенным старшим битом (в частности 0) появиться просто не может, следовательно если мы видим 0 в потоке utf8, мы можем достоверно утверждать, что это юникод символ с кодом 0, который является терминатором в asciiz (unicode-z или как он там называется в случае юникода).
|
|
|