jsp向mysql表中插入中文数据乱码解决

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

txtfilter

com.rongtian.book.util.txtFiter

txtfilter

/*

配置完成后,重新部署,在控制台打印数据,发现中文没有乱码现象。但在提交mysql后,mysql表中数据为乱码,需要接下来的操作。

3.在 mysql 里面配置下

在你要修改的字段,选择gb2312,不要使用utf8,在mysql中,utf8会出现中午乱码。

在你的数据库中,执行如下代码。

ALTER TABLE 你的表名 CHARACTER SET gb2312;

在mysql的安装目录下你找到 my.ini 这个文件找到一行

default-character-set-latinl;

把latinl 改成你的gb2312。重启服务器删除缓存数据。

这样,中文数据从页面到数据库不会出现乱码情况。

相关文档
最新文档