无主题 · 开发技术博客

MySQL数据库中文问号乱码问题解决

问题描述

本文的解决方案只适用于问号(?)形式乱码MySQL 乱码截图:

使用 java 连接 mysql 插入数据时出现的乱码问题,连接字符串如下:

jdbc:mysql://127.0.0.1:3306/${db.name}?autoReconnect=true&useUnicode=true&characterEncoding=utf-8

分析过程

连接字符串已经设置 characterEncoding=utf-8 ,所以排除由于数据传输导致数据乱码的可能。经验告诉我,数据传输导致的乱码应该是这个样子的(绂忓埄鍗℃暟鎹)。

所以乱码造成的原因应该是发生在数据库端,而不是程序代码中;找到一个可以正常保存数据的数据库进行配置对比,主要是对比编码格式有什么差异。

使用命令行或工具连接两个 mysql 数据库,输入如下查询命令:

show variables like "%char%";

出现乱码的数据库:

没有乱码的数据库:

通过对比结果发现,只有 characher_set_server 的值是不一样的。

解决方案

修改 mysql 数据库的 my.cnf (windows系统是 my.ini)文件,增加如下配置:

[mysqld]

character-set-server = utf8 
修改保存后,重启 mysql 服务即可。
 
mac os 系统的修改 my.cnf 文件方法:
拷贝 /usr/local/mysql/support-files/my-default.cnf/etc/     下,并重命名为 my.cnf

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏博主
站内评论 新浪微博评论
发表评论
评论(3)
没有看到评论?强制刷新
评论 (3)
引用 (0)
  • 3楼
    http://www.gwfenxiang.com/http://www.gwfenxiang.com/ :

    好文章

    2017.04.3 10:54 中国上海上海 | Windows 7 | Chrome 45.0.2454.101 回复
  • 2楼
    http://www.3101649.diouna.com/蒂欧娜 :

    来看看,学习学习!!

    2016.10.16 10:34 美国加利福尼亚 | Windows 7 | 搜狗浏览器 2.X 回复
  • 1楼
    http://www.jxgushihui.com/故事会在线阅读 :

    数据库啥的还不太懂

    2016.10.8 16:32 中国上海上海 | Windows 7 | Chrome 43.0.2357.134 回复
  • 还没有Trackback