我在三个属性文件中声明了三个语言环境转换,例如 Strings.properties、Strings_es_ES.properties 和 Strings_en_GB.properties(对于美国、ES 和英国)
在 Strings_es_ES.properties 中,我声明了如下字符串,并将属性文件设置为 UTF-8 格式。
admin.main.numberofrewards=Número de recompensas:
admin.main.categorylist=lista Categoría
我在 .jsp 文件中使用上述资源包,如下所示
<%@ page pageEncoding="UTF-8"%>
<h2><spring:message code="admin.main.numberofrewards"/></h2>
<p><spring:message code="admin.main.categorylist"/></p>
我在浏览器上得到如下输出
Nómero de recompensas
lista CategorÃa
请帮我解决这个问题
最佳答案
and set the properties file with UTF-8 format
这是你的错误。
它们是 read作为 ISO-8859-1,因此它们应该保存为 ISO-8859-1。如果您打算显示 ISO-8859-1 character set 不可用的字符,那么你基本上有 3 个选择:
使用
native2ascii
工具将 UTF-8 保存的属性文件转换为 ISO-8859-1 编码的属性文件,使用\uXXXX
形式的 unicode 转义在所有地方而不是 ISO-8859-1 字符集未涵盖的那些“特殊字符”。使用能够自动执行#1 的属性文件编辑器,例如 Eclipse 中内置的编辑器。换句话说,只需在 Eclipse 中创建和编辑属性文件即可。它会自动担心编码问题。
使用自定义
ResourceBundle.Control
实现,其中您使用new InputStreamReader(inputStream, "UTF-8")
自己显式读取属性文件。但是,作为非 Spring 用户,我不知道如何告诉 Spring 使用该自定义Control
。 In JSF it's easy .
另见:
关于java - 没有得到西类牙字符 (ú, í) 但在 UI 上得到像 (ó, Ã),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20543364/