UTF-8 и IsAlpha () в PHP
Я работаю над приложением, которое поддерживает несколько языков и имеет функциональность, которая пытается использовать язык, запрашиваемый браузером, а также позволяет вручную переопределить эту функцию. Эта часть работает отлично и выбирает правильные шаблоны, метки и т. Д.
Пользователь должен иногда вводить текст самостоятельно, и здесь я сталкиваюсь с проблемами, потому что приложение должно принимать даже «сложные» языки, такие как китайский и русский. До сих пор я позаботился о вещах, упомянутых в других публикациях, т.е.
призваниеmb_internal_encoding( 'UTF-8' )
установка правильной кодировки при рендеринге веб-страниц сmeta http-equiv=Content-Type content=text/html;charset=UTF-8
(формат адаптирован из-за ограничений переполнения стека)даже контент поступает правильно, потому чтоmb_detect_encoding() == UTF-8
пытался установитьsetLocale(LC_CTYPE, "UTF-8")
, который, кажется, не работает, потому что требует выбора одного языка, который я не могу указать, потому что я должен поддерживать несколько. И все равно не получится, если я вызову его вручную для целей тестирования, то есть с помощью;setLocale(LC_CTYPE,"zh__CN.utf8")
- ctype_alpha()
все равно не удастся для китайского текстаКажется, что даже явный выбор языка не делаетctype_alpha()
полезно.
Отсюда вопрос:как проверить алфавитные символы на всех языках?
Единственная идея, которая у меня возникла на данный момент, - это проверять вручную массивы «допустимых» символов, но это кажется некрасивым, особенно для китайцев.
Как бы вы решили эту проблему?