zoukankan      html  css  js  c++  java
  • MySQL 中文乱码问题

    引言

    在 MySQL 8 之前的版本中,MySQL 的默认字符集一直是 latin1,这种默认的字符集编码方式是不支持中文的,可以说这对于使用汉语的中国程序员来说很不友好。虽然可以通过修改字符集编码方式为 utf-8 来支持中文,但是需要在很多地方修改字符集编码是一件让人心烦的事情,一旦忘记修改就会出现讨厌的中文乱码问题。

    好消息是 MySQL 8 终于将该死的默认的字符集编码方式 latin1 设置为 utf-8,这算是对中国程序员做了一件好事。

    查看 MySQL 字符串编码方式

    • 打开 CMD 窗口,输入 mysql 登录命令启动 mysql 客户端
    mysql -uroot -p123456
    
    • 查看字符集编码
    mysql> show variables like 'collation_%';
    +----------------------+-----------------+
    | Variable_name        | Value           |
    +----------------------+-----------------+
    | collation_connection | utf8_general_ci |
    | collation_database   | utf8_general_ci |
    | collation_server     | utf8_general_ci |
    +----------------------+-----------------+
    3 rows in set, 1 warning (0.01 sec)
    
    
    mysql> show variables like 'character_set%';
    +--------------------------+-----------------------------------------------------+
    | 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       | E:Program Files (x86)mysql-8.0.22sharecharsets |
    +--------------------------+-----------------------------------------------------+
    8 rows in set, 1 warning (0.11 sec)
    
    

    缺省是 latin1 编码,会导致中文乱码。

    修改字符集编码

    • 修改数据库的编码
    mysql> alter database 数据库名 character set utf8;
    
    • 修改数据库表的编码
    mysql> ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; 
    

    修改配置文件字符集编码

    打开 MySQL 的 my.ini 配置文件,修改如下:

    [mysql]  
    default-character-set=utf8  
    [client]  
    default-character-set=utf8  
    [mysqld]  
    default-character-set=utf8  
    character_set_server=utf8  
    init_connect='SET NAMES utf8' 
    

    重启 MySQL,这样可以确保 MySQL 缺省字符集编码方式是 utf8

    作者:Binge
    本文版权归作者和博客园共有,转载必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
  • 相关阅读:
    突破
    leetcode刷题 538~
    leetcode刷题 519~
    Docker练习之镜像更新方法1
    十二 Linux之tar解压缩
    十一 Linux软件包管理yum
    十 Linux指令之grep
    九 linux指令之find
    八 Linux ps指令查看进程和kill杀进程
    七 Linux top命令
  • 原文地址:https://www.cnblogs.com/binbingg/p/14081429.html
Copyright © 2011-2022 走看看