我在使用 UTF-8 时遇到问题。
common.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
典型的.jsp
<%@ include file="common.jsp" %>
页头
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
形式
<form id="screenObject" accept-charset="UTF-8" action="/SiteAdmin/articleHeaderEdit?articleId=15" method="post">
我在文本字段中输入非 latin1 字符,然后单击保存。Validator 抱怨另一个字段并停止提交。这永远不会到达数据库,因此数据库处理 UTF-8 的能力不在这张图片中。页面重新显示并出现适当的错误,但输入的文本全乱了。所有非 latin1 字符都被转换为一些乱码。
我正在使用 Spring 3 MVC,以防万一……
尝试
将此添加到我的视图解析器没有帮助:
<property name="contentType" value="text/html;charset=UTF-8" />
解决方案
将编码过滤器添加到 web.xml。
<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>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>