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