PHP 5.2.17 でいくつかの古いアプリをリファクタリングし、UTF-8 文字セットに変換しています。アプリは gettext を使用しますが、何らかの理由で、すべてのテキストが UTF-8 になり、テキストもカタログ化されている場合でも、gettext は cp1250 (win7 witch czech national 環境で) でデータを返します。最初から UTF-8 でまったく新しいものを作成しようとしましたが、IIS7.5 を再起動しましたが、それでも間違った文字セット (UTF-8 ではなく cp1250) が取得されました。(私は新しいPCのwin7で初めてです。おそらく、一部のphp構成、mbstring、およびiconvに内部エンコーディングとしてUTF-8が設定されています)
編集:これは私の .po ファイルのヘッダーです。毎回 .mo を生成しています:
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
"X-Poedit-Basepath: ../../../\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Poedit-Language: Czech\n"
"X-Poedit-Country: CZECH REPUBLIC\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Poedit-SearchPath-0: .\n"
すべてのコードと html ヘッダーが utf-8 になりました。IIS キャッシュはどうですか? しかし、IIS を再起動しても効果はありません。
何が間違っている可能性がありますか?答えてくれてありがとう。