Миграция php-приложения для обработки UTF-8
Я работаю над многоязычным приложением в php.
Все было хорошо, до недавнего времени меня просили поддержать китайские иероглифы. Для поддержки символов UTF-8 я предпринял следующие действия:
Все таблицы БД теперь в формате UTF-8
HTML-шаблоны содержат тег<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Контроллеры отправляют заголовок с указанием кодировки (utf-8) для использования в ответе http
Все было хорошо, пока я не начал делать некоторые строковые манипуляции (substr и тому подобное)
С китайским он не будет работать, потому что китайский представлен в виде многобайтовых данных, и, следовательно, если вы сделаете обычную подстроку (substr), он будет обрезать «букву» в середине одного из выделенных байтов и f * ck до результата на экран.
Я исправил ВСЕ мои проблемы, добавив это в загрузчик
mb_internal_encoding("UTF-8");
и заменить всеstrlen
, substr
, strstr
с ихmb_
двойники.
Что еще мне нужно сделать, чтобы полностью поддерживать UTF-8 в php?