Я решил сделать это, потому что с поддержкой юникода в Perl очень трудно справиться правильно.
Это ɴᴏᴛ правда!
Perl обладает самой сильной поддержкой Юникода среди всех основных языков программирования. Работать с Unicode намного проще, если вы используете Perl, чем если вы используете любой из C, C ++ , Java, C ♯ , Python, Ruby PHP или Javascript. Это не гипербола и бустеризм от необразованной, слепой верности .; это взвешенная оценка, основанная на более чем десятилетнем профессиональном опыте и учебе.
Проблемы, с которыми сталкиваются наивные пользователи, возникают практически всегда, потому что они обманывают себя в том, что такое Юникод. Самый страшный мозговой жук номер один думает, что Unicode похож на ASCII, но больше. Это абсолютно и совершенно неправильно. Как я уже писал в другом месте:
Фундаментально и критически не соответствует действительности , что Uɴɪᴄᴏᴅᴇ - это просто некоторый расширенный набор символов относительно ᴀsᴄɪɪ. В лучшем случае это верно не более, чем ошеломленный ɪsᴏ ‑ 10646. Uɴɪᴄᴏᴅᴇ включает в себя гораздо больше , что просто присваивание чисел глифам: правила сопоставления и сравнения, три формы регистров, небуквенный регистр, регистр символов с несколькими кодами, как канонические, так и совместимые составленные и разложенные формы нормализации формы сериализации, графемные кластеры, перенос слов и строк, сценарии, числовые эквиваленты, ширины, двунаправленность, зеркальное отображение, ширина печати, исключения логического упорядочения, варианты глифов, контекстное поведение, локали, регулярные выражения, множественные формы объединения классов, несколько типов разложений, сотен и сотен критически полезных свойств и многое, многое другое‼
Да, это много, но это не имеет никакого отношения к Perl. Это связано с Юникодом. Этот Perl позволяет вам получить доступ к этим вещам, когда вы работаете с Unicode, это не ошибка, а особенность. То, что эти другие языки не позволяют вам полный доступ к Unicode, никоим образом не может быть истолковано как точка в их пользу: скорее, это все основные ошибки наивысшей возможной серьезности, потому что если вы не можете работать с Unicode в 21-м веке, тогда этот язык является примитивным, сломанным и принципиально бесполезным для требовательных требований современной обработки текста.
Perl нет. И в миллиард раз легче сделать все правильно в Perl, чем на других языках; в большинстве из них вы даже не можете обойти их недостатки дизайна. Ты просто облажался Если язык не обеспечивает полную поддержку Unicode, он не подходит для этого столетия; откажитесь от него.
Perl делает Unicode бесконечно проще, чем языки, которые не позволяют использовать Unicode должным образом.
В этом ответе вы найдете вначале Семь простых шагов для работы с Unicode в Perl, а в нижней части этого же ответа вы найдете некоторый шаблонный код, который поможет. Поймите это, затем используйте это. Не принимайте разбитость. Вы должны изучить Юникод, прежде чем сможете использовать Юникод.
И вот почему нет простого ответа. Perl облегчает работу с Unicode, при условии , что вы понимаете, что такое Unicode. И если вы имеете дело с внешними источниками, вам нужно организовать, чтобы этот источник использовал какую-то кодировку.
Также прочитайте все, что я говорил о ??????????????? ??????????.Это те вещи, которые вы действительно должны понять.Еще одна проблема, связанная с нарушением правил # 49 , заключается в том, что Javascript не работает, поскольку он не обрабатывает все действительные кодовые точки Unicode одинаково, независимо от их плоскости.Javascript тоже сломан почти во всех других отношениях.Это не подходит для работы с Unicode.Просто Правило # 34 убьет вас, поскольку вы не можете заставить Javascript следовать требуемому стандарту о том, что такие вещи, как \w
определены для выполнения в Юникод-регулярные выражения .
Удивительно, сколько языков совершенно бесполезно для Unicode.Но Perl определенно не один из них!