java - 没有得到西类牙字符 (ú, í) 但在 UI 上得到像 (ó, Ã)

标签 java spring utf-8 character-encoding properties-file

我在三个属性文件中声明了三个语言环境转换,例如 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 个选择:

  1. 使用 native2ascii 工具将 UTF-8 保存的属性文件转换为 ISO-8859-1 编码的属性文件,使用 \uXXXX 形式的 unicode 转义在所有地方而不是 ISO-8859-1 字符集未涵盖的那些“特殊字符”。

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

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

另见:

关于java - 没有得到西类牙字符 (ú, í) 但在 UI 上得到像 (ó, Ã),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20543364/

相关文章:

java - 阻止用户在文本字段中输入字符,仅允许使用磁条读取器 (MSR) 进行刷卡

java - 在 Java 1.4 中如何查看子字符串是否存在于另一个字符串中?

java - 添加 Jersey MOXy 导致 Jetty 运行失败

java - 通过 Java 中的依赖注入(inject)进行继承(后期绑定(bind))

spring - Spring MVC中的多 View 解析器

mysql - Django 和 MySQL unicode 错误

html - 使用 UTF-8 不显示特殊字符 ">"

java - 我的蓝牙应用随机崩溃并出现错误 : Error receiving broadCast Intent

angular - 带有 Angular 和 Spring 错误的 Keycloak : GET http://localhost:8180/auth/realms/Storage/protocol/openid-connect/3p-cookies/step1. html 404(未找到)

utf-8 - SQLite UTF-8 编码