我遇到UTF-8问题。
common.jsp中
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
typical.jsp
<%@ include file="common.jsp" %>
Page Head
<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>
答案 0 :(得分:5)
数据流中的某个位置使用UTF-8以外的其他内容将字符串编码为字节或将字节流解码为字符串。当您使用一些使用默认字符编码的API调用时,通常会发生这种情况。在不知道您的代码的情况下,我们可以告诉您。
另请参阅this link了解Spring中的字符编码问题,或者只是在论坛中搜索[spring] character encoding
以了解其他大量帖子。