我在Windows 7中的PHP 5.3中的setlocale函数有问题。
我需要设置UTF-8编码的俄罗斯语言环境。 我在Russian_Russia.65001中看到了一些解决scheme,但是这种语言环境的函数返回FALSE。
所有的解决scheme都是为在Windows XP中使用的地区列表位于“控制面板”中而devise的。 在Windows 7中,此function已被删除。
在Windows系统上使用UTF-8语言环境是不可能的。 :
如果您提供的代码页如UTF-7或UTF-8,则setlocale将失败,返回NULL。
只有Russian_Russia.1251
窗口代码页Russian_Russia.1251
工作(参见Moodle的语言环境表 )。
你仍然可以尝试设置,看看哪一个来槽:
if ($newLocale = setLocale(LC_CTYPE, 'ru_RU.UTF-8', 'Russian_Russia.1251')) { echo 'Locale is now set to: ' . $newLocale; }
这在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