美文网首页我爱编程
JDBC插入/查询MySQL中文乱码

JDBC插入/查询MySQL中文乱码

作者: biloba | 来源:发表于2018-04-09 22:38 被阅读43次

    产生乱码的原因是编码方式不相同或者不兼容。关于字符编码不是太清楚可以看一下这篇文章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";
    

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

    相关文章

      网友评论

        本文标题:JDBC插入/查询MySQL中文乱码

        本文链接:https://www.haomeiwen.com/subject/psywhftx.html