?

Log in

No account? Create an account
nyaload

Журнал Пушыстого

Журнал Пушыстого

Entries by category: технологии

WTF-8
nyaload
_winnie
Вообще я считаю что UTF-8 - это гениальное изобретение для обеспечения совместимости старых и новых программ, которое позволяет плавно переходить на юникод. Как клёво и тонко продумана сборка букв в байты, что бы работали старые программы!

Хотите что бы правильная™ технология заменила кривую, которую вы ненавидите, но которой пользуется весь мир - изобретайте такие же гениальные схемы перехода.

Обнаружил ситуацию, где незадумчивый UTF-8 ломает старый однобайтовый код: регулярные выражения вроде [а-яА-ЯёЁ] превращаются в чёрти что, через раз работающее.

Видел ещё одно место, где UTF-8 порождает баги: показать пользователю первые N символов. При этом один из русских символов разрезается ровно пополам.
В браузере выглядит так:

Это начало некого длинного текс[?]

где вместо [?] - квадратик или вопросик или т.п.

Ещё грабли, поинтересней. В cp1251 есть один неопределённый код символа, 0x98. Это соответствует второму байту буквы 'И' в UTF-8 ('\xd0\x98'). Иногда при интерпретации UTF-8 через промежуточный cp1251 происходит мистика - 'И' исчезает, заменяется на '?' и тп.

Кто ещё с чем таким сталкивался, на границе UTF-8 и однобайтовых программ?
Tags: