jsp向mysql表中插入中文数据乱码解决
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Jsp 向Mysql表中添加中文文字乱码报错,解决方案
1.首先设置页面charset=gb2312 和 <% request.setCharacterEncoding("gb2312"); %> 保证要所用提交页面格式为gb2312,
如果只操作这一步,在控制台打印提交数据有可以出现乱码情况,必须添加下面配置2.创建Filter类,配置web.xml
创建一个名为txtFilter类,实现Filter接口,用来设置页面代码格式
package com.rongtianxinxijishu.book.util;
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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class txtFiter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // TODO Auto-generated method stub
//主要步骤如下
HttpServletRequest req = (HttpServletRequest) arg0;
HttpServletResponse res = (HttpServletResponse) arg1;
req.setCharacterEncoding("gb2312");
res.setCharacterEncoding("gb2312");
arg2.doFilter(req, res);
}
public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub
}
}
txtFilter类创建好后,接着配置web.xml
com.rongtian.book.util.txtFiter
配置完成后,重新部署,在控制台打印数据,发现中文没有乱码现象。但在提交mysql后,mysql表中数据为乱码,需要接下来的操作。
3.在 mysql 里面配置下
在你要修改的字段,选择gb2312,不要使用utf8,在mysql中,utf8会出现中午乱码。
在你的数据库中,执行如下代码。
ALTER TABLE 你的表名 CHARACTER SET gb2312;
在mysql的安装目录下你找到 my.ini 这个文件找到一行
default-character-set-latinl;
把latinl 改成你的gb2312。重启服务器删除缓存数据。
这样,中文数据从页面到数据库不会出现乱码情况。