美文网首页
与mysql容器进行数据交互中文乱码解决方法

与mysql容器进行数据交互中文乱码解决方法

作者: 扎你p屁 | 来源:发表于2019-01-29 20:45 被阅读0次

    一、查看client的语言格式

    将语言格式均设置为C.UTF-8,可以通过在Dockerfile里添加ENV命令来设置语言格式。

    root@3430f38caf85:/# locale
    LANG=C.UTF-8
    LANGUAGE=C.UTF-8
    LC_CTYPE="C.UTF-8"
    LC_NUMERIC="C.UTF-8"
    LC_TIME="C.UTF-8"
    LC_COLLATE="C.UTF-8"
    LC_MONETARY="C.UTF-8"
    LC_MESSAGES="C.UTF-8"
    LC_PAPER="C.UTF-8"
    LC_NAME="C.UTF-8"
    LC_ADDRESS="C.UTF-8"
    LC_TELEPHONE="C.UTF-8"
    LC_MEASUREMENT="C.UTF-8"
    LC_IDENTIFICATION="C.UTF-8"
    LC_ALL=C.UTF-8
    

    二、查看mysql容器编码格式

    可以看到很多项目的语言格式不是utf8


    image.png

    二、设置mysql容器全局编码为UTF-8,修改my.cnf文件

    [mysqld]
    character-set-server=utf8 
    [client]
    default-character-set=utf8 
    [mysql]
    default-character-set=utf8
    

    之后再查看语言格式,已经变为utf8。

    mysql> show variables like '%char%';
    +--------------------------+--------------------------------+
    | Variable_name            | Value                          |
    +--------------------------+--------------------------------+
    | character_set_client     | utf8                           |
    | character_set_connection | utf8                           |
    | character_set_database   | utf8                           |
    | character_set_filesystem | binary                         |
    | character_set_results    | utf8                           |
    | character_set_server     | utf8                           |
    | character_set_system     | utf8                           |
    | character_sets_dir       | /usr/share/mysql-8.0/charsets/ |
    +--------------------------+--------------------------------+
    

    之后重启mysql容器.
    注意:读取修改my.cnf文件之前建的table依然会有乱码,修改后新建table才不会有乱码!!!!

    相关文章

      网友评论

          本文标题:与mysql容器进行数据交互中文乱码解决方法

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