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でサポートされている文字列のリストは、こちらから入手できます。イギリス英語の場合は、、、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);