Я работаю над приложением, которое поддерживает несколько языков и имеет функциональность, которая пытается использовать язык, запрашиваемый браузером, а также позволяет вручную переопределить эту функцию. Эта часть работает нормально и выбирает правильные шаблоны, метки и т. Д.
Пользователь должен иногда вводить текст самостоятельно, и здесь я сталкиваюсь с проблемами, потому что приложение должно принимать даже «сложные» языки, такие как китайский и русский. До сих пор я позаботился о вещах, упомянутых в других сообщениях, т.е.
- звонит
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()
полезным.
Отсюда возникает вопрос: как мне проверить алфавитные символы на всех языках?
Единственная идея, которая у меня возникла на данный момент, - это проверять вручную массивы «допустимых» символов - но это выглядит некрасиво, особенно для китайцев.
Как бы вы решили эту проблему?