Когда мой PHP-скрипт запускается в кодировке UTF-8 с использованием символов, отличных от ASCII, некоторые функции PHP, такие как strtolower()
, не работают.
Я мог бы использовать mb_strtolower, но этот скрипт можно запускать на самых разных платформах и конфигурациях, и расширение многобайтовой строки может быть недоступно. Я мог бы проверить, существует ли функция перед использованием, но в моем коде есть строковые функции, и я не хотел бы заменять каждый экземпляр.
Кто-то предложил использовать set_locale(LC_CTYPE, 'C')
, который, по его словам, заставляет строковые функции работать правильно. Звучит неплохо, но я не хочу вводить это изменение, не понимая, что именно оно делает. Раньше я использовал set_locale для изменения форматирования чисел, но я раньше не использовал флаг LC_CTYPE
и не очень понимаю, что он делает. Что означает значение 'C'
?
C
, не подразумевается как RTFM, просто для полноты картины) - person Pekka   schedule 08.03.2011