当前位置:编程学习 > JAVA >>

JDBC从MySql中获取中文数据乱码

为什么从MySql中获取的数据是乱码,修改配置文件mysql.ini中的编码方式与项目中的编码方式相同均为UTF8依旧乱码,修改前后的唯一区别是修改前直接MYSQL录入中文数据显示乱码,修改后可以直接录入中文数据不会显示乱码,但是用JDBC读取依旧乱码,无法解决,是否是MYSQL版本的问题,我的MYSQL是5.0.22免安装版 --------------------编程问答--------------------   无法解决了,求教育 --------------------编程问答-------------------- 沉了么 --------------------编程问答-------------------- 最高只能加到100分,有人么 --------------------编程问答-------------------- 把mysql编码修改为GBK --------------------编程问答-------------------- http://www.iteye.com/topic/311583 --------------------编程问答-------------------- mysql.ini文件你怎么修改的?如果数据库中有数据,貌似不太好用。建议你把数据库备份下,卸载重装mysql,将默认字符集改成utf-8,同时把项目编码也都改成utf-8,这样会省去很多编码麻烦。 --------------------编程问答--------------------
引用 4 楼  的回复:
把mysql编码修改为GBK


试过了,GB2312 UTF8全部试过了,但是不行 --------------------编程问答--------------------
引用 5 楼  的回复:
http://www.iteye.com/topic/311583


我去看看 --------------------编程问答--------------------
引用 6 楼  的回复:
mysql.ini文件你怎么修改的?如果数据库中有数据,貌似不太好用。建议你把数据库备份下,卸载重装mysql,将默认字符集改成utf-8,同时把项目编码也都改成utf-8,这样会省去很多编码麻烦。


就直接用记事本打开修改,mysql.ini文件里有设置默认编码方式的我将它改成UTF8依旧不行 --------------------编程问答-------------------- 查一下mysql数据库里存的数据是不是正确的,如果不正确,把数据库编码改成utf-8 --------------------编程问答--------------------
引用 10 楼  的回复:
查一下mysql数据库里存的数据是不是正确的,如果不正确,把数据库编码改成utf-8

数据库里可以显示中文,但是JDBC调用就出现乱码,项目也是UTF8编码,是否是数据库版本问题 --------------------编程问答--------------------
没人知道是什么原因吗。。。。还是我问题没有说清楚。。。。。 --------------------编程问答-------------------- http://www.blogjava.net/NicholasEcho/archive/2008/11/03/238310.html --------------------编程问答--------------------
jdbc:mysql://127.0.0.1:3306/hello?useUnicode=true&characterEncoding=UTF-8  

你连接的时候设定一下字符集试试 然后把mysql的字符集设成utf8,表的字符集也设成utf8,表的字段也设成utf8.java项目的字符集也改成UTF-8试试。 --------------------编程问答-------------------- tomcat conf目录,修改server.xml:

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" 
               URIEncoding="UTF-8"/>
--------------------编程问答-------------------- 假设你的代码是这样的
while(rs.hasNext()){
String str=rs.getString(0);//假设这里获取的数据是乱码
//加如下代码试试
str=new String(str.getBytes("ISO-8859-1"),"utf-8");
System.out.println(str); //看输出的结果还是不是乱码
}
--------------------编程问答--------------------
引用 14 楼 yangmeng_3331 的回复:
Java code?1jdbc:mysql://127.0.0.1:3306/hello?useUnicode=true&characterEncoding=UTF-8  
你连接的时候设定一下字符集试试 然后把mysql的字符集设成utf8,表的字符集也设成utf8,表的字段也设成utf8.java项目的字符集也改成UTF-8试试。


我的问题就是characterEncoding=gbk,传参之后就行了,十分感谢!! --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 建议建数据库时选择语言gb2312
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,