产生乱码的原因是编码方式不相同或者不兼容。关于字符编码不是太清楚可以看一下这篇文章http://blog.jobbole.com/76376/
问题
使用JDBC查询得到数据里中文乱码
插入时中文也变成???
解决方法
将编码方式统一为utf-8
- eclipse文件保存的编码方式
eclipse->window->preferences->General->workspaceTypes->Other->UTF-8->OK
- 数据库的编码方式
通过 show variables like '%char%'; 查看数据库编码
这里latin1在查询/插入时会造成中文乱码,应把它改成utf-8,不过改成utf-8时插入会出现下面问题
ERROR 1366 (HY000): Incorrect string value: '\xB1\xEA\xCC\xE2\xD5\xE2...' for column 'title' at row 2
所以这里改成gbk,jdbc连接时数据能转换成utf-8
打开MySQL的配置程序
在这里把默认字符编码改成gbk
配置完成后再看
- jdbc连接的编码方式
在url后加上 ?useUnicode=true&characterEncoding=utf-8
public static final String DB_URL="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8";
通过上面三步问题应该就能得到解决,不过之前已存在的编码不相同的数据仍然是乱码,之后的数据是正常的
网友评论