2

我在 Windows 7 的 PHP 5.3 中遇到了 setlocale 函数的问题。

我需要使用 UTF-8 编码设置俄语语言环境。我看到了一些解决方案,其中是 Russian_Russia.65001,但具有这种语言环境的函数返回 FALSE。

所有解决方案都是为在 Windows XP 中使用而设计的,其中语言环境列表位于控制面板中。在 Windows 7 中,此功能已被删除。

4

2 回答 2

7

在 Windows 系统上无法使用 UTF-8 语言环境。

如果您提供像 UTF-7 或 UTF-8 这样的代码页,setlocale 将失败,返回 NULL。

只有 Windows 代码页Russian_Russia.1251可以工作(参见Moodle 的语言环境表)。

您仍然可以尝试同时设置两者,看看哪一个出现:

if ($newLocale = setLocale(LC_CTYPE, 'ru_RU.UTF-8', 'Russian_Russia.1251'))
{
   echo 'Locale is now set to: ' . $newLocale;
}
于 2013-04-20T12:42:25.720 回答
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
于 2014-05-20T18:52:57.970 回答