当前位置: 代码迷 >> Java Web开发 >> 小弟我JAVA WEB 项目在向Mysql 输入数据时,出现乱码,咋回事
  详细解决方案

小弟我JAVA WEB 项目在向Mysql 输入数据时,出现乱码,咋回事

热度:803   发布时间:2016-04-16 21:28:25.0
我JAVA WEB 项目在向Mysql 输入数据时,出现乱码,怎么回事?
我JAVA WEB  项目在向Mysql 输入数据时,出现乱码,怎么回事?时struts2 和 hibernate写的。 向mysql输入数据,在页面显示时时汉字。从页面写入时mysql显示的是乱乱码,着怎么回事?
------解决思路----------------------
我以前也遇到过同样的问题,先确认一下表的编码方式,一般安装mysql客户端的时候,有设定的形式 你不改的话好像是latin 什么呢 看看你出问题的表或者字段的编码 是不是utf-8,如果你的操作系统是32位 我建议你到mysql官网去下载mysql的可视化工具workbench 用它来该非常方便。希望我的回答对你有用
------解决思路----------------------
首先 在action里面的方法里输出一下数据  看是不是乱码 

如果是 那就是前台页面的编码有问题
如果action里输出不是乱码  插入数据库后就是乱码  那就是数据库的字符集有问题

建议数据库 页面 全部统一为utf-8

在web.xml里面 设置spring strust2的字符集过滤器 过滤为utf-8
------解决思路----------------------
首先,在servlet开始语句加上
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");

其次,对乱码的汉子进行一个转码。 例如,station= new String(station.getBytes("ISO-8859-1"),"gb2312");
再次,加一个过滤器把你所有页面过滤成UTF-8。

3道防线 绝对可靠
三个都做了如果还是不行,就把 station= new String(station.getBytes("UTF-8"),"gb2312");
试试。 
------解决思路----------------------
数据库编码改成utf-8,所有页面都用这个编码
------解决思路----------------------
一般这种是数据库字符集和页面字符集不一致的问题,你页面的字符集一般是gb2312,你看看你数据库的字符集是什么,假如是iso8859-1,这样转换下:station=new String(station.getBytes("gb2312"),"iso8859-1")
------解决思路----------------------
在安装mysql数据文件中将my.ini文件中字体设为gbk就可以,,需注意的是my.ini文件中要修改两处!
  相关解决方案