我正在做一个支持两种语言English和Turkies的Struts-1项目。为了显示消息,我们使用了Struts-1的Internationalization特性,因此我们有两个属性文件(ApplicationResources_en.properties和ApplicationResources_en.properties)来存储需要显示给用户的消息。
对于英文版本,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键,有正确的和预期的输出。
但是当Locale被更改时,意味着当我们尝试使用turkey版本时,没有正确的输出。它显示特殊字符,而不是写入属性fıle中的实际字符。
在属性文件中,消息是Ücret Miktarı,但在浏览器中输出的是�cret Miktar�。
注意:我已经检查过我的火狐浏览器默认设置为Unicede (UTF-8)编码,我们有一个header.jsp,它包含在每个页面中,其中我们有一个元标签,如<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我不明白我到底做错了什么。请帮帮我。
发布于 2013-04-12 12:29:47
它说,跟踪了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ı
发布于 2013-04-03 15:16:03
检查浏览器编码并将其设置为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> https://stackoverflow.com/questions/15781001
复制相似问题