Mysql-emoji表情

Mysql-emoji表情支持版本

大于5.5.3的Mysql版本才开始支持emoji表情

Mysql-emoji表情失败原因

  • 普通的字符串或者表情都是占位3个字节,使用utf8足够用了,但是移动端的表情符号占位是4个字节,普通的utf8就不够用了,为了应对无线互联网的机遇和挑战、避免 emoji 表情符号带来的问题、涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集。Mysql 5.5.3之前的版本,仅支持的utf8为3字节的,Mysql 5.5.3之后的版本支持utf8mb4为4字节的。

Mysql配置修改

  • 修改mysql配置文件my.cnf(windows为my.ini)

    找到后请在以下三部分里添加如下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [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'
  • 检查变量

    1
    SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
  • 将数据库和已经建好的表也转换成utf8mb4

    1.更改数据库编码

    1
    ALTER DATABASE caitu99 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

    2.更改表编码

    1
    ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;