我正在开展支持两种语言Struts-1
和English
的{{1}}项目。要显示消息,我们使用Turkies
的{{1}}功能,因此我们有两个属性文件(Internationalization
和Struts-1
s)来存储需要向用户显示的消息。
对于英文版ApplicationResources_en.properties
,密钥和值为
ApplicationResources_en.propertie
对于Turkies版本ApplicationResources_en.properties
键,值为
farequoteautomatic.entry-area.gen.emd.fareamount=Fare Amount
当ApplicationResources_tr.properties
是英语意味着我们使用英语版本时,一切正常。该密钥的正确和预期输出为farequoteautomatic.entry-area.gen.emd.fareamount=Ücret Miktarı
。
但是当Locale
更改意味着当我们尝试使用Fare Amount
版本时,没有正确的输出。它显示特殊的字符,而不是属性fıle中写的实际字符。
属性文件消息为Locale
,但浏览器输出为turkey
。
注意:我已经检查过我的Firefox浏览器默认设置为Ücret Miktarı
编码,我们有一个�cret Miktar�
,它包含在每个页面中,我们有一个META标记,如Unicede (UTF-8)
< / p>
我不明白我在这里做错了什么。请帮帮我。
答案 0 :(得分: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>
答案 1 :(得分: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ı