JDBC插入/查询MySQL中文乱码

产生乱码的原因是编码方式不相同或者不兼容。关于字符编码不是太清楚可以看一下这篇文章http://blog.jobbole.com/76376/

问题

使用JDBC查询得到数据里中文乱码

插入时中文也变成???

解决方法

将编码方式统一为utf-8

  1. eclipse文件保存的编码方式
    eclipse->window->preferences->General->workspaceTypes->Other->UTF-8->OK
  1. 数据库的编码方式
    通过 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

配置完成后再看

  1. jdbc连接的编码方式
    在url后加上 ?useUnicode=true&characterEncoding=utf-8
public static final String DB_URL="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8";

通过上面三步问题应该就能得到解决,不过之前已存在的编码不相同的数据仍然是乱码,之后的数据是正常的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容