我有一个Struts 2应用程序,它有一个Struts s:text标签使用的西班牙语属性文件。但是,Web浏览器中生成的页面中包含乱码字符,如下所示:
Contraseña:
属性文件中的值为:
password = Contraseña
我最初认为问题是我的属性文件的编码,但Notepad ++和标准Windows记事本报告它都保存为UTF-8。
我还有什么办法可以修复我的属性文件中的字符吗?
答案 0 :(得分:1)
问题在于浏览器,您应该将这些字符作为HTML entity
提供,如:
ñ
,您可能希望直接以这种方式编写它们,或者使用工具将这些值转换为HTML entities
。
同样在文件中,为了避免与其他开发人员和编辑人员UTF8
不一致的问题,最好的方法是以Unicode
格式存储这些字符串,您可以用您的母语输入(西班牙语为示例)之后运行native2ascii
命令将它们转换为unicode
...
这样做的好处是每个人都可以打开.java
和.jsp
文件......如果他们想要使用这些短语,那么他们会打开属性文件...... < / p>
答案 1 :(得分:0)
你的问题是,默认情况下,属性文件被认为是编码是ASCII,这真的很糟糕。
对于同样的问题,我在这里有一个未解决的问题。
我知道ResourceBundle可以管理UTF-8文件(我在那个问题中说如何做到这一点并将链接放到完成并使用un JSF的页面)但不知道如何在struts2中执行此操作< / p>