【问题标题】:spring framework mvc localizationspring框架mvc本地化
【发布时间】:2013-10-21 19:38:08
【问题描述】:

我正在尝试向我们的 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页面中添加了这样的:

但它不起作用。

【问题讨论】:

  • 请出示您的控制器。

标签: spring jsp


【解决方案1】:

ReloadableResourceBundleMessageSourcedefaultEncoding 属性用于

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

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

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

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

如果您没有使用jsp,还有其他方法可以直接从HttpServletResponse 或从返回的ResponseEntity 对象设置content-typecontent-encoding

【讨论】:

  • 打败了我一秒钟。我想补充一点,你应该确保你的属性文件是 UTF-8
【解决方案2】:

更新您的默认编码:

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

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

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

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    ...
</head>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-04
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多