首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache struts国际化和本地化问题

Apache struts国际化和本地化问题
EN

Stack Overflow用户
提问于 2013-04-03 15:11:19
回答 2查看 647关注 0票数 1

我正在做一个支持两种语言EnglishTurkiesStruts-1项目。为了显示消息,我们使用了Struts-1Internationalization特性,因此我们有两个属性文件(ApplicationResources_en.propertiesApplicationResources_en.properties)来存储需要显示给用户的消息。

对于英文版本,ApplicationResources_en.properties密钥和值为

代码语言:javascript
复制
farequoteautomatic.entry-area.gen.emd.fareamount=Fare Amount

对于土耳其版本,ApplicationResources_tr.properties键和值为

代码语言:javascript
复制
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" />

我不明白我到底做错了什么。请帮帮我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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

代码语言:javascript
复制
farequoteautomatic.entry-area.gen.emd.fareamount=Ücret Miktarı

转换为

代码语言:javascript
复制
farequoteautomatic.entry-area.gen.emd.fareamount=\ufeff\u00dccret Miktar\u0131

在浏览器上,我得到了想要的输出,那就是Ücret Miktarı

票数 0
EN

Stack Overflow用户

发布于 2013-04-03 15:16:03

检查浏览器编码并将其设置为UTF-8

在web.xml中试用

代码语言:javascript
复制
<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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15781001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档