2012-04-20 18 views
2

我正在重構php 5.2.17中的一些舊應用程序並將其轉換爲UTF-8字符集。應用程序使用gettext,但由於某些原因,即使所有文本現在都是UTF-8和目錄文本,gettext也會返回cp1250中的數據(在win7女巫捷克國家環境中)。我從一開始就嘗試創建一個全新的UTF-8,重新啓動IIS7.5,但仍然出現錯誤的charset(不是UTF-8,而是cp1250)。 (我是新的Win7,在新的PC上,也許它是在一些PHP配置,mbstring和iconv已將UTF-8設置爲內部編碼)Gettext on php/iis/win7,錯誤的字符集

編輯: 這是我的.po file.I的標題生成。 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的chache?但是IIS的重啓沒有任何效果。

你知道什麼可能是錯的嗎? 謝謝你的回答。

回答

1

我找到了解決辦法。在我的生活我第一次必須使用這個(通常我使用的Apache2):

bind_textdomain_codeset($domain, "UTF-8"); 

在IIS即使一切被寫入並設置爲UTF-8就必須設置...

0

您的.po/.mo gettext文件可能使用cp1250字符集。

嘗試改變它(例如POEdit)爲UTF-8,重新編譯.mo文件並重新啓動服務器。

如果這不起作用,請告訴我們您是如何計算輸出字符集的,這可能是相關的。

+0

我有編輯我的原始文章更多詳細信息... – Fanda 2012-04-20 08:46:42