调教方法

  1. 修改comment表text列的字符集为utf8m……
  2. 修改typecho连接数据库信息里的字符集

理论

mysql的字符集的作用域有三个层级一个数据库级,一个是表级,一个是列级(字段级别的)。优先级是:列级》表级》数据库级。从优先级知道如果存emoji的那个字段不是utf8mb4字符集,那么即使数据库是utf8mb4也是无济于事的。

操作

#查看表中各列的字符集
show full columns from some_table;

#修改某一列的字符集
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;  

需要擦屁股的问题

  • 评论邮件乱码

    • 解决:在plugin.php中的发信函数中加入$mail->Charset = 'UTF-8';