3

我正在尝试向我们的 Spring MVC 应用程序添加国际化和本地化支持。我在 *-servlet.xml 中进行了这样的编码

<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:messages" />
<property name="defaultEncoding" value="UTF-8"/>

但是我发现了错误的字符,如下所示

在此处输入图像描述

我无法弄清楚我应该解决什么问题。如果可能,请告诉我。


我已经在jsp页面中添加了这样的: <%@ page contentType="text/html;charset=UTF-8" language="java" %>

但它不起作用。

4

2 回答 2

2

defaultEncoding属性ReloadableResourceBundleMessageSource用于

设置用于解析属性文件的默认字符集。如果没有为文件指定特定于文件的字符集,则使用该字符集。

它与客户端如何读取响应无关。如果您使用 a 生成响应jsp,则可以在开始时给它这一行

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

以便客户端知道您正在提供使用UTF-8字符集编码的数据。

如果您不使用 a jsp,还有其他方法可以直接从或从返回的对象设置content-typeor 。content-encodingHttpServletResponseResponseEntity

于 2013-10-21T20:01:13.857 回答
0

更新您的默认编码:

<property name="defaultEncoding" value="ISO-8859-1" />

这应该适用于渲染带有重音的字符。至少它适用于我的春季项目(法语和欧洲语言/用户)

如果这不是您的选择(目标用户的更多受众),请尝试将其添加到您的 jsp 中:

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    ...
</head>
于 2013-10-21T20:58:56.263 回答