7

为什么setlocale(LC_ALL, 'en_GB.UTF8');在 Windows Server 2003 R2-Zend CE PHP 5.3.5 上返回 false?

有问题的功能:setlocale.

4

2 回答 2

11

来自 PHP 手册:

的返回值setlocale()取决于 PHP 运行的系统。它准确地返回系统setlocale函数返回的内容。

因此,在您的情况下,它返回 false,因为系统返回 false。您使用的语言环境很可能在您的系统上不可用。

此处setlocale提供了 Windows 支持的字符串列表。对于英式英语,您需要、或。不过,Windows 不支持像 UTF-8 这样的多字节字符集;您可能最终会使用 Windows-1252。engenglish-ukuk

于 2012-02-28T20:47:36.567 回答
2

我想补充一点,Windows 不支持 utf-8 的问题可以通过以下方式改善:

$str=strftime('%a'); //for example
if(!mb_check_encoding($str,'utf-8')) $str=utf8_encode($str);
于 2015-10-04T16:35:24.577 回答