我遇到UTF-8问题.
在common.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
Run Code Online (Sandbox Code Playgroud)
typical.jsp
<%@ include file="common.jsp" %>
Run Code Online (Sandbox Code Playgroud)
页头
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Run Code Online (Sandbox Code Playgroud)
形成
<form id="screenObject" accept-charset="UTF-8" action="/SiteAdmin/articleHeaderEdit?articleId=15" method="post">
Run Code Online (Sandbox Code Playgroud)
我在文本字段中输入非latin1字符,然后单击"保存".Validator会抱怨另一个字段并停止提交.这永远不会到达数据库,因此数据库处理UTF-8的能力不在此图中.页面会重新显示并显示相应的错误,但输入的文本全部搞砸了.所有非latin1字符都转换为一些乱码.
我正在使用Spring 3 MVC,以防万一...
尝试
将此添加到我的视图解析器没有帮助:
<property name="contentType" value="text/html;charset=UTF-8" />
Run Code Online (Sandbox Code Playgroud)
解
将编码过滤器添加到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>
Run Code Online (Sandbox Code Playgroud)