重音字母和普通话和阿拉伯语等其他语言很棘手。
我猜你还没有看到这个问题的最后一个。
您应该确保在链中的任何链接中正确编码文本。
例如
- 数据库->java->响应->浏览器
- 属性文件->jav->响应->浏览器
- 请求(参数/表单)->响应->浏览器
- java -> 记录器 -> 控制台
我建议遵循这个很好的答案
How to get UTF-8 working in Java webapps?
要将其调整为弹簧,请使用弹簧的 CharacterEncodingFilter。
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
如果您使用 i18n,请确保为您的 ResourceBundleMessageSource 定义默认编码,例如
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
>
<property name="basename" value="classpath:messages"/>
<property name="defaultEncoding" value="UTF-8"/>
<property name="useCodeAsDefaultMessage" value="false"/>
</bean>
确保您的属性文件使用 Java 的 native2ascii 正确编码。
或者如果你使用 eclipse 更好,我推荐Property Editor 插件。
有时第三方框架会破坏某些东西,您需要做一些“神奇的”
new String(yourstring, "UTF8")
有关更多信息,请参见此处
请注意,一些视图解析器也需要定义编码。