我在Windows 7的PHP 5.3中遇到了setlocale函数的问题。
我需要使用UTF-8编码设置俄语语言环境。我看到一些解决方案,这是Russian_Russia.65001,但这种类型的语言环境的函数返回FALSE。
所有解决方案都是为在Windows XP中使用而设计的,其中语言环境列表位于“控制面板”中。在Windows 7中,此功能已被删除。
答案 0 :(得分:7)
It's not possible to use UTF-8 locales on windows systems.:
如果您提供类似UTF-7或UTF-8的代码页,setlocale将失败,返回NULL。
只有Windows代码页Russian_Russia.1251
才有效(请参阅Moodle's table of locales)。
您仍然可以尝试设置两者,看看哪一个低谷:
if ($newLocale = setLocale(LC_CTYPE, 'ru_RU.UTF-8', 'Russian_Russia.1251'))
{
echo 'Locale is now set to: ' . $newLocale;
}
答案 1 :(得分:2)
这适用于Windows 7
putenv('LANG=fr_CA.UTF-8');
setlocale(LC_ALL,'fr_CA.UTF-8');
bindtextdomain('translation','./language');
bind_textdomain_codeset('translation','UTF-8');
textdomain('translation');
.po / .mo文件的路径
./language -> fr_CA.UTF-8 -> LC_MESSAGES -> translation.po
./language -> fr_CA.UTF-8 -> LC_MESSAGES -> translation.mo