2

Windows7のPHP5.3のsetlocale関数に問題があります。

UTF-8エンコーディングでロシア語ロケールを設定する必要があります。これがRussian_Russia.65001であるいくつかの解決策を見ましたが、このタイプのロケールを持つ関数はFALSEを返します。

すべてのソリューションは、ロケールのリストがコントロールパネルにあるWindowsXPで使用するために設計されました。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

これはWindows7で私のために働いた

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 に答える