Менелион Эленсуле пишет:PHP quick tip: не используйте сериализацию массивов при работе с юникодом
Если вы хотя бы немного программировали на PHP, вы уже знаете, что с поддержкой unicode в этом языке, мягко говоря, далеко не всё гладко. Вот и я в очередной раз наступил на грабли там, где вроде бы должна была быть зелёная травка.
Иногда через форму нужно бывает передать массив строк. Можно, конечно, делать много-много input-полей типа hidden, но капитан Очевидность говорит нам, что это, во-первых, некошерно, во-вторых, просто неудобно, а в-третьих, в некоторых случаях может быть и небезопасно в плане «защиты от (любопытного) дурака».
PHP предоставляет нам неплохую функцию
serialize(), которая вроде бы позволяет передавать любые объекты в виде строк, в том числе и через форму.
И передавал я так объекты очень долго, пока не пришлось мне иметь дело с большим массивом элементов, некоторые из которых были текстами в UTF-8 (причём не только по-русски). Вот тут-то и началась засада.
Хотел я вам показать, что бывает, если так сделать, но воспроизвести на тестовом файле не смог. Это-то и пишут другие программеры: когда именно вместо вашего текста отобразится весёлый набор крокозябров из высших значений unicode, никто точно не знает. И то, что я поверх сериализации использовал ещё base64, не меняет картины.
Что же делать?
Помимо сериализации можно использовать старый добрый (ну или новый, но по-любому добрый)
JSON, который работает с UTF-8 и только с ней.
Для кодирования объектов в JSON в PHP имеется функция
json_encode(), которая и придёт вам на помощь в трудную минуту.
Метки: Программирование, PHP, Quick tips, Сериализация, Unicode, JSON
Читать полностью
Menelion Elensúle пишет:* * *
Вышла новая версия стандарта Unicode, в которую добавлено 732 символа (в том числе для ряда африканских письменностей и языка мяо; даже латиницу с кириллицей чем-то расширили).
Однако tengwar как не было, так и нет. И это при том, что в черновиках стандарта эта письменность давно есть.
Надо, пожалуй, всколыхнуть народ и составить петицию по принятию tengwar в число символов unicode.
Метки: Unicode, Tengwar, Quenya
Читать полностью