このphpコードを実行します:
echo "<br>system locales: ".system('locale -a')."<br><br>";
echo "current locales: ".setlocale(LC_ALL, 0)."<br><br>";
var_dump(setlocale (LC_ALL, 'de_DE.utf8'));
echo "current locales: ".setlocale(LC_ALL, 0)."<br><br>";
echo "accepting german characters?: ".ctype_alpha("äüöß")."<br><br>";
echo "accepting characters in general?: ".ctype_alpha("test")."<br><br>";
echo "rejecting numbers?: ".ctype_alpha("tes2t")."<br><br>";
次の出力を取得します。
C C.UTF-8 POSIX de_DE.utf8
system locales: de_DE.utf8
current locales: C
string(10) "de_DE.utf8" current locales: de_DE.utf8
accepting german characters?:
accepting characters in general?: 1
rejecting numbers?
ドキュメントに書かれているように、setlocale (LC_ALL, 'de_DE.utf8') の呼び出し後、ctype_alpha は äöüß のようなドイツ語の文字を受け入れると予想しました: " しかし、そうではありません。ここで何が間違っていますか?
PHP のバージョン: 5.3.10-1ubuntu3.8