我正在尝试将表单提交中的中文字符保存到数据库中。
我在jsp上设置了contentType,通过
<%@ page contentType="text/html;charset=UTF-8" %>我还在jsp的中设置了这个标记:
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8" />但是,当我提交表单时,我的控制器看到一个与我输入的字符不同的字符。
我正在输入字符我并看到??在控制器中。当数据重新显示在页面上时,它显示相同的错误字符(??)。
为什么控制器不能获得正确的字符?
发布于 2010-12-01 06:18:37
在web.xml文件中的任何其他过滤器之前声明一个CharacterEncodingFilter
<filter>
<filter-name>charsetFilter</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>
</filter>
<filter-mapping>
<filter-name>charsetFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>在您的jsp文件中,尝试在文件的最开始添加以下内容:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>发布于 2010-12-01 05:15:55
并不是所有的浏览器都会遵守您在页面或表单中指定的字符集。Spring提供了一个名为CharacterEncodingFilter的过滤器,它可以在请求到达控制器之前添加字符编码或强制执行特定编码。
发布于 2010-12-01 05:10:41
在表单中添加一个accept-charset属性:
<form method="POST" accept-charset="utf-8" ... >这将告诉浏览器以UTF-8格式将表单内容提交给服务器。
https://stackoverflow.com/questions/4318664
复制相似问题