【发布时间】:2012-03-18 08:40:37
【问题描述】:
为什么setlocale(LC_ALL, 'en_GB.UTF8'); 在 Windows Server 2003 R2 - Zend CE PHP 5.3.5 上返回 false ?
有问题的函数:setlocale。
【问题讨论】:
标签: php windows utf-8 setlocale
为什么setlocale(LC_ALL, 'en_GB.UTF8'); 在 Windows Server 2003 R2 - Zend CE PHP 5.3.5 上返回 false ?
有问题的函数:setlocale。
【问题讨论】:
标签: php windows utf-8 setlocale
来自 PHP 手册:
setlocale()的返回值取决于 PHP 运行的系统。它返回的正是系统 setlocale 函数返回的内容。
因此,在您的情况下,它返回 false,因为系统返回 false。您使用的语言环境可能在您的系统上不可用。
Windows 支持的setlocale 字符串列表是可用的here。对于英式英语,您需要 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);
【讨论】: