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