Немного матчасти про кодировки
24-11-2010 02:08
к комментариям - к полной версии
- понравилось!
Дело в том, что в обычных кодировках типа windows-1251 один символ занимает один байт. И так было изначально и все функции в языках программирования заточены под это. В юникоде символ может состоять из нескольких байт. Например английские буквы занимают один байт. Кириллица уже 2 байта. Попробуйте например посчитать длину слова "Превед", получите 12. А "Превед, медвед" - 26, т.к. запятая и пробел занимают один байт. В общем не все так просто. Вся проблема в софте.
Для perl существует прагма use utf8; Добавляете ее и perl понимает юникод как надо. Не добавляется - творятся чудеса. В PHP про поддержку юникода ничего не знаю, но вроде как ее там нет.
В общем при работе с юникодом надо чтобы язык умел оперировать символами, а не байтами, а это не все умеют, к сожалению.
Использовать юникод в языках, которые с ним работать не умеют можно, но на свой страх и риск. Можно таких чудес насмотреться. Многие начинаю верить в НЛО. А чудес на самом деле нет (в программировании). С опытом это начинаешь понимать ;)
вверх^
к полной версии
понравилось!
в evernote