2013-04-03 60 views
1

我正在研究支持兩種語言EnglishTurkiesStruts-1項目。要顯示消息,我們使用Internationalization功能Struts-1因此我們有兩個屬性文件(ApplicationResources_en.propertiesApplicationResources_en.propertie s)來存儲需要顯示給用戶的消息。Apache struts國際化和本地化問題

英文版本ApplicationResources_en.properties鍵和值是

farequoteautomatic.entry-area.gen.emd.fareamount=Fare Amount 

對於Turkies版本ApplicationResources_tr.properties鍵和值是

farequoteautomatic.entry-area.gen.emd.fareamount=Ücret Miktarı 

一切正常時Locale是,當我們使用英文版本英文的意思。有這個關鍵是Fare Amount正確和預期。

但是當Locale改變意味着當我們嘗試使用turkey版本時沒有正確的輸出。它顯示特殊的字符,而不是在屬性fıle中寫入的實際字符。

屬性文件信息是Ücret Miktarı,但在瀏覽器輸出是�cret Miktar�

注:我已經檢查了我的火狐瀏覽器設置默認爲Unicede (UTF-8)編碼和我們這是在中,我們有像<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

META標記每個頁面encluded一個header.jsp我不明白我是什麼在這裏做錯了。請幫幫我。

+0

只是一個猜測是語言安裝了其他語言的包。 –

回答

0

其次mkyong url,它說。

For UTF-8 or non-English characters, for example Chinese , you should encode it with native2ascii tool.

隨着native2ascii tool

farequoteautomatic.entry-area.gen.emd.fareamount=Ücret Miktarı 

轉換爲

farequoteautomatic.entry-area.gen.emd.fareamount=\ufeff\u00dccret Miktar\u0131 

的幫助,並在瀏覽器中我得到了想要的出端起是Ücret Miktarı

1

檢查您的瀏覽器編碼,並將其設置UTF-8

試試這個 在web.xml

<filter> 
<filter-name>CharacterEncodingFilter</filter-name> 
<filter-class>bt.gov.g2c.framework.common.CharacterEncodingFilter</filter-class> 
<init-param> 
<param-name>requestEncoding</param-name> 
<param-value>UTF-8</param-value> 
</init-param> 
</filter> 
+0

在header.jsp中我們有一個meta標籤,它爲每個頁面設置編碼

+0

沒有檢查你的瀏覽器的編碼是否設置爲UTF-8或不。如果它是鍍鉻goto工具 - >編碼 – Biswajit

+0

我編輯了我的問題,可能會回答你的問題。 –