开发者社区> 问答> 正文

mysql乱码问题的解决方案

mysql出现乱码问题如何处理

展开
收起
开发者说 2019-07-12 16:57:54 929 0
2 条回答
写回答
取消 提交回答
  • 技术宅
    docker运行mysql乱码:
    docker run --name mysql56 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123-d mysql:5.6 --character-set-server=utf8 --collation-server=utf8_general_ci
    2019-07-13 15:09:00
    赞同 展开评论 打赏
  • 问题原因

    系统默认编码是gbk,而mysql客户端提供的编码方式是utf8,两种编码不一致导致的,查看当前mysql的编码:

    show variables like 'character%';

    如下图: 

     

    解决方法

    将mysql提供的客户端编码变为gbk

    设置客户端编码:

    set character_set_client = gbk;

    此时可以插入中文数据了,但是在

    select * from user

    时发现刚才插入的中文数据乱码

    原因是:统默认编码是gbk,而mysql结果集的编码方式是utf8,两种编码不一致导致的

    解决方案是将mysql结果集编码设置成gbk

    设置结果集的编码:

    set character_set_results = gbk;

    再次查询数据库

    注意:上述操作只针对当前客户端有效

    彻底修改编码的操作:在安装文件中寻找my.ini文件 找到default-character-set=utf8一行

    将utf8改成gbk,意味着和客户端相关的编码全部给程gbk

    再次查询编码集:

    显示正常。

    2019-07-22 11:29:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像