在Windows 7中的PHP:setlocale

我在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