原因:mysql默认utf-8一字符为3字节,而emoji是4字节

解决方案:


  1. 首先mysql版本>=5.5.3

  2. 修改 my.cnf或者mysql.ini

    [client]
     default-character-set = utf8mb4
    [mysql]
     default-character-set = utf8mb4
    [mysqld]
     character-set-client-handshake = FALSE
     character-set-server = utf8mb4
     collation-server = utf8mb4_unicode_ci
     init_connect='SET NAMES utf8mb4'


  3. 重启 MySQL Server、检查字符集
    SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

  4. 修改数据库字符集:
    ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

  5. 修改表的字符集:
    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

注意:5.6版本的my.ini文件在ProgramData里,这里其实是一个读取顺序的问题,先读取ProgramData,再读取安装目录下。

赞助本站,网站的持续发展离不开你们的支持!一分也是爱ヾ(◍°∇°◍)ノ゙
 本文链接: ,花了好多脑细胞写的,转载请注明链接喔~~
登陆
      正在加载评论
 书籍推荐