Почему setlocale(LC_ALL, 'en_GB.UTF8');
return false на Windows Server 2003 R2 – Zend CE PHP 5.3.5?
Функция, о которой идет речь: setlocale
.
Из руководства PHP:
Возвращаемое значение
setlocale()
зависит от системы, в которой работает PHP. Он возвращает именно то, что возвращает функция setlocale системы.
Поэтому в вашем случае он возвращает false, потому что система возвращает false. Вероятно, используемый вами язык не доступен в вашей системе.
Список поддерживаемых Windows строк setlocale
доступен здесь . Для британского английского вам нужен eng
, english-uk
или uk
. Windows не поддерживает многобайтовые наборы символов, такие как UTF-8; вы, вероятно, окажетесь в Windows-1252.
Я хотел бы добавить, что проблема Windows, не поддерживающая utf-8, может быть улучшена с чем-то вроде этого:
$str=strftime('%a'); //for example if(!mb_check_encoding($str,'utf-8')) $str=utf8_encode($str);