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を返します。使用しているロケールがシステムで使用できない可能性があります。

setlocaleWindowsでサポートされている文字列のリストは、こちらから入手できます。イギリス英語の場合は、、、engまたはenglish-ukが必要ukです。ただし、WindowsはUTF-8のようなマルチバイト文字セットをサポートしていません。おそらくWindows-1252になってしまうでしょう。

于 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 に答える