为什么setlocale(LC_ALL, 'en_GB.UTF8');
在Windows Server 2003 R2上返回false - Zend CE PHP 5.3.5?
有问题的功能:setlocale
。
答案 0 :(得分:7)
从PHP手册:
setlocale()
的返回值取决于PHP正在运行的系统。它准确返回系统 setlocale 函数返回的内容。
因此,在您的情况下,它返回false,因为系统返回false。您正在使用的区域设置可能在您的系统上不可用。
Windows支持的setlocale
个字符串列表可用here。对于英式英语,您需要eng
,english-uk
或uk
。 Windows不支持像UTF-8这样的多字节字符集;你最终可能会得到Windows-1252。
答案 1 :(得分:0)
我想补充一点,Windows不支持utf-8的问题可以通过以下方式改进:
$str=strftime('%a'); //for example
if(!mb_check_encoding($str,'utf-8')) $str=utf8_encode($str);