不是西班牙语字符(ú,í),而是在UI上得到(ó,Ã)

6 java spring utf-8 character-encoding properties-file

我在三个属性文件中声明了三个语言环境转换,如Strings.properties,Strings_es_ES.properties和Strings_en_GB.properties(适用于US,ES和UK)

在Strings_es_ES.properties中,我声明了如下所示的字符串,并使用UTF-8格式设置属性文件.

admin.main.numberofrewards=Número de recompensas:
admin.main.categorylist=lista Categoría
Run Code Online (Sandbox Code Playgroud)

我在.jsp文件中使用上面的资源包,如下所示

<%@ page pageEncoding="UTF-8"%>
<h2><spring:message code="admin.main.numberofrewards"/></h2>
<p><spring:message code="admin.main.categorylist"/></p>
Run Code Online (Sandbox Code Playgroud)

我在浏览器上输出如下所示

Nómero de recompensas
lista CategorÃa
Run Code Online (Sandbox Code Playgroud)

请帮帮我

Bal*_*usC 9

并使用UTF-8格式设置属性文件

这是你的错.

他们为ISO-8859-1,因此他们应该被保存为ISO-8859-1.如果您打算提供ISO-8859-1字符集不可用的字符,那么您基本上有3个选项:

  1. 使用native2ascii工具将UTF-8保存的属性文件转换为ISO-8859-1编码的属性文件,该文件具有\uXXXX遍布所有位置的unicode转义,而不是ISO-8859-1 charset未涵盖的那些"特殊字符".

  2. 使用能够自动执行#1的属性文件编辑器,例如Eclipse中内置的编辑器.换句话说,只需在Eclipse中创建和编辑属性文件即可.它会自动担心编码问题.

  3. 使用自定义ResourceBundle.Control实现,其中您自己使用显式读取属性文件new InputStreamReader(inputStream, "UTF-8").但是,作为非Spring用户,我不知道如何告诉Spring使用该自定义Control.在JSF中,这很容易.

也可以看看: