在线等!关于jsp页面表单中文数据提交到后台出现乱码问题!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在线等!关于jsp页面表单中文数据提交到后台出现乱码问题!相关的知识,希望对你有一定的参考价值。
我是一个新手,最近在tomcat6.0+MyEclipse6.5+MSSQL2000下开发一个网站,可是不知道为什么form表单提交的中文数据出现乱码(我是在MyEclipse控制台下看到提交的数据是乱码的)。当然保存到数据库中也变成了乱码。项目统一采用UTF-8编码。各位大侠帮我看一下到底出了什么问题:
这是我的JSP文件头:
<%@ page contentType="text/html; charset=UTF-8" language="java"
import="java.util.*" pageEncoding="UTF-8" errorPage=""%>
<meta http-equiv="Content-Type" content="text/html; charset="UTF-8" />均设置了UTF-8编码。
同时我还写了一个过滤器:SetCharacterEncodingFilter
package d8city.jskr.EncodingFilter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class SetCharacterEncodingFilter implements Filter
protected String encoding = null;
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void destroy()
this.encoding = null;
this.filterConfig = null;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException
if (ignore || (request.getCharacterEncoding() == null))
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
chain.doFilter(request, response);
public void init(FilterConfig filterConfig) throws ServletException
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
protected String selectEncoding(ServletRequest request)
return (this.encoding);
web.xml下面也进行了相关配置:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>
d8city.jskr.EncodingFilter.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
是不是我还有什么没有进行配置,提交的中文数据总是出现乱码。谢谢各位了,这问题已经缠了我几天了,
同时,我吧页面的编码全部改成gb2312后提交的数据便是中文。这是为什么。
<Connector
port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="GBK" /> 参考技术B 这种问题。我也碰到了。。按网上的方法一直没解决掉。。没办法。就做了个最土的方法解决。
你的set方法这里加上强制编码格式如
private void setName(String name)
this.name=new String(name.getBytes("ISO8859-1"),"GBK");
本回答被提问者采纳 参考技术C Eclipse上面点击window-->preferences-》General下的第四个Content Types
点击要改的文件类型,下面Default encoding修改对应的编码 参考技术D 我觉得是查看工具的编码问题
ajax 如何提交数据到后台jsp页面,以及提交完跳转到jsp页面
我logincheck.jsp页面取传参数代码:
String user=request.getParameter("user1");
String pwd=request.getParameter("pwd1");
login.jsp input 取2参数何用ajax 传给logincheck.jsp
==================================
$.ajax({
type : "POST",
url : baseUrl+"m/module/querymodulebyname.do",
dataType:"json",
data:
{
modName:title
},
success : function(data){
//data = eval(‘(‘+data+‘)‘);
var result = data.rows[0];
$(‘#main-tab‘).tabs(‘close‘,title);
openPage(title,‘‘,baseUrl+result.moUrl,null);
}
});
注释:type:传输式使用post
url: 地址数据传输Struts
data:传输参数 modName(自随便起)action 根据modname获取面 title
success:功返参数data
想要跳转SUCcess面 跳转指定页面
以上是关于在线等!关于jsp页面表单中文数据提交到后台出现乱码问题!的主要内容,如果未能解决你的问题,请参考以下文章
怎么在jsp页面的form表单中加入富文本编辑器???并传递数据到后台进行保存
紧急待解答,网页from提交表单,网站后台出现的都是疑问号“???”,这是怎么回事,求解决方案。
通过html页面的表单提交中文数据,Java后台出现乱码。跪求大神解答。