jsp到mysql中文乱码

hibernate和struts2写的程序
1.从mysql命令行输入中文,不乱码
2.从jsp页面读取数据库,不乱码
3.从jsp页面向数据库添加数据,乱码????????

mysql和jsp页面的编码方式都是gbk

基于以上问题,求解

看你的样子,需要做三点
1.像一楼一样连接数据库时设置编码
2.虽然你的jsp页面设置了gbk,但是浏览器没有设置,需要设置浏览器编码方式,注意浏览器的编码方式设置成utf-8,因为浏览器没有gbk格式
<%@ page contentType="text/html; charset=utf-8"%>
3.设置一个过滤器
package org.jb.common.filter;

import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;

public class SetCharacterEncodingFilter implements Filter {

protected FilterConfig filterConfig;
protected String encodingName;
protected boolean enable;

public SetCharacterEncodingFilter() {
this.encodingName = "GBK";
this.enable = false;
}

public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}

public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding("GBK");
chain.doFilter(request, response);
}

public void destroy() {
}
}
web.xml配置加
<filter>
<filter-name>encodefilter</filter-name>
<filter-class>org.jb.common.filter.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodefilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
OK,成功,所以说对于乱码问题要从头到尾都编码一致,包括数据库,连接数据库,jsp页面,浏览器,浏览器-jsp-antion之间传值时的编码即过滤器
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-04
String cjdw = new String(req.getParameter("cjdw").getBytes("ISO8859_1")); 这么写,接收参数就可以了
第2个回答  2012-05-04
你在安装mysql的时候有一步是指定mysql的字符集,你选中gb2312或者utf-8即可。。。
呵呵。。。希望对你有用。。。。
第3个回答  2012-05-04
你最好是用UTF-8 这个比较权威 在你后台类里获取的时候 转码 就可以了
第4个回答  2012-05-04
添加数据时乱码,那看看你执行的sql语句是不是就已经是乱码了呢?

在mysql中插入中文时,在jsp页面上能正常显示;但是在jsp页面上插入中文...
6、提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding( "gb2312 ")对请求进行统一编码,就实现了中文的正常显示 再就是我遇到的问题:...

jsp+mysql中文乱码问题。如何通过mysql-front设置mysql。
我也是外行,亲,我觉得这个问题是front的设置的问题,你打开front之后在任务栏处选择数据库-属性-数据库-信息-字符集,对其进行选择,看是不是能好,一般选择GBK或者是UTF-8,这个应该是显示的问题

从jsp页面取得文本插入数据库,乱码!!!
看看浏览器的默认编码,换个浏览器试试。如果不行的话建议你新建一个JSP 写几个简单的输出看看乱不乱,不乱的话把程序一行一行拷进去。乱码这种问题大部分都是COPY时候不小心的,实在不行就手敲吧。。。

mysql数据库中和jsp页面中都设置成了GBK格式 在lomboz elipse中插入...
你mysql和jsp设置成UTF-8,这个与你的IDE编辑器无关。问题是你的mysql是第三方插件?还是phpmyadmin? 如果是 用utf8_general_ci 再就是 你从jsp传值 走断点看一下 是否有乱码。转码或者加一个过滤器转码一下。若传值到dao都没有乱码,那么就是mysql 字段编码设置的问题了。有问题请q我 56150655 ...

jsp接受mysql中文乱码,jsp向servelet传递参数同样乱码
统一下编码首先,如果还不行,那么传参的时候转一下码试试!

通过jsp页面修改数据库信息,输入中文会出现乱码。怎么解决?
在你的servlet里对数据进行重新编码,例如:String data=new String (request.getAttribute("data").getBytes("iso8859-1","gb2312"));转换之后的data字符串再插入到数据库中

想问一个struts1.2+hibernate3.2+mysql4.0插入数据和读取数据乱码问题...
对不同的WEB服务器和不同的JDK版本,处理结果就不一样。原因:服务器使用的编码方式不同和浏览器对不同的字符显示结果不同而导致的。解决办法:在JSP页面中指定编码方式(gb2312),即在页面的第一行加上:,就可以消除乱码了。完整页面如下:二、表单提交中文时出现乱码 下面是一个提交页面(submit.jsp...

有谁知道中文乱码问题
在mysql4.1.0中,varchar类型,text类型就会出现中文乱码,对于varchar类型把它设为binary属性就可以解决中文问题,对于text类型就要用一个编码转换类来处理,实现如下:public class Convert { \/** 把ISO-8859-1码转换成GB2312 \/ public static String ISOtoGB(String iso){ String gb;try{ if(iso....

关于jsp插入mysql数据库中文编码的问题: 我jsp页面设置的是gb2312...
那就对数据库进行编码咯。。就是在建立数据库连接后,马上设置连接编码。这样应该可以吧。。

页面乱码问题怎么解决?
1)JSP页面中显示中文乱码 在JSP文件中使用page命令指定响应结果的MIME类型,如<%@ page language="java" contentType="text\/html;charset=gb2312" %> 2)表单提交乱码 表单提交时(post和Get方法),使用request.getParameter方法得到乱码,这是因为tomcat处理提交 的参数时默认的是iso-8859-1,表单提交get和post处理乱码...

相似回答