Объявление, делающее PHP-скрипт полностью совместимым с Unicode

делать все, что вам нужно сделать в PHP, чтобы заставить его работать должным образом с Unicode, слишком сложно, утомительно и подвержено ошибкам, поэтому я ищу трюк, чтобы заставить PHP волшебным образом обновить абсолютно все, что возможно, из затхлый старый режим байтов ASCII в современный символьный режим Unicode, одновременно и с помощью всего одного простого объявления.

Идея состоит в том, чтобы модернизировать сценарии PHP для работы с Unicode, не загромождая исходный код кучей запутанных альтернативных вызовов функций и специальных регулярных выражений. Все должно просто «Делать правильные вещи» с Unicode, без вопросов.

Учитывая, что целью является максимальная уникальность с минимальными усилиями, это объявление должно по крайней мере выполнять следующие действия (плюс все, что я забыл, что способствует достижению общей цели):

  • Считается, что сам источник сценария PHP находится в UTF ‑ 8 (например, строки и регулярные выражения).

  • Весь ввод и вывод автоматически преобразуются в / из UTF ‑ 8 по мере необходимости и с опцией нормализации (например, , все входные данные нормализованы к NFD, а весь выход нормализован к NFC). Я бы хотел, чтобы был способ «обновить» это объявление до режима полной графемы. Таким образом, байтовые или символьные функции становятся функциями графемы (например, grapheme_strlen , grapheme_strstr , grapheme_strpos и grapheme_substr ). материал работает с правильными графемами (например, . - или даже [^ abc] - соответствует кластеру графем Unicode независимо от того, сколько кодовых точек он содержит, и т. д.).

10
задан tchrist 23 April 2011 в 15:33
поделиться