为什么setlocale(LC_ALL, 'en_GB.UTF8');
在 Windows Server 2003 R2-Zend CE PHP 5.3.5 上返回 false?
有问题的功能:setlocale
.
来自 PHP 手册:
的返回值
setlocale()
取决于 PHP 运行的系统。它准确地返回系统setlocale函数返回的内容。
因此,在您的情况下,它返回 false,因为系统返回 false。您使用的语言环境很可能在您的系统上不可用。
此处setlocale
提供了 Windows 支持的字符串列表。对于英式英语,您需要、或。不过,Windows 不支持像 UTF-8 这样的多字节字符集;您可能最终会使用 Windows-1252。eng
english-uk
uk
我想补充一点,Windows 不支持 utf-8 的问题可以通过以下方式改善:
$str=strftime('%a'); //for example
if(!mb_check_encoding($str,'utf-8')) $str=utf8_encode($str);