【发布时间】:2013-11-24 15:33:49
【问题描述】:
我运行这个 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 后会接受像 äöüß 这样的德语字符,如文档中所写:"Returns TRUE if every character in text is a letter from the current locale, FALSE otherwise." 但事实并非如此。 我在这里做错了什么?
PHP 版本为:5.3.10-1ubuntu3.8
【问题讨论】:
-
äüöß字符串的编码是什么?也就是说,源代码文件保存为什么编码?
标签: php ubuntu character-encoding locale