给Typecho更换utf8mb4字符集以支持Emoji表情

Typecho默认使用的是UTF8字符集,仅占用3字节,这样就不能支持最新的Emoji扩展字符。这次给Typecho更新字符集,每个字占用4字节,就可以正常存储Emoji了。

又水一篇文章,高考之前的最后一次冒泡

准备

  • MySQL 5.5.3或更高
  • MariaDB 10.0或更高

为方便起见,可以使用GUI:

  • phpMyAdmin 4.3或更高

更新SQL配置

修改my.cnf配置文件,在各项之下加入

[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

保存后重载配置或重启服务即可。

检查数据库变量

进入数据库终端,执行

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

不出所料会得到以下结果:

character_set_client
utf8mb4
character_set_connection
utf8mb4
character_set_database
utf8mb4
character_set_filesystem
binary
character_set_results
utf8mb4
character_set_server
utf8mb4
character_set_system
utf8
collation_connection
utf8mb4_unicode_ci
collation_database
utf8mb4_unicode_ci
collation_server
utf8mb4_unicode_ci

更新数据表

进入数据库终端,执行

更新数据库

ALTER DATABASE <database_name> CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

其中,<database_name>更换为你的数据库名。

更新数据表

ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

其中,<table_name>更换为你的数据库表名。

Typecho可以参照以下语句(默认表前缀是typecho_):

ALTER TABLE typecho_comments CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE typecho_contents CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE typecho_fields CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE typecho_metas CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE typecho_options CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE typecho_relationships CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE typecho_users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

修改Typecho配置

编辑config.inc.php文件,将数据库charset改成utf8mb4即可。

测试表情

????????

Kyouka❤Paryi
Fubuki❤Matsuri
Mea❤Aqua
Kagura Nana❤Jimmy H.

夹带私货,已举报!(逃

本文距离最后一次更新已超过180天,部分内容可能会随着时间的推移变更或失效。

已有 8 条评论
  1. Victor

    你真的是个萌妹纸?

    Victor | | Windows 10 x64 Edition | Google Chrome 84.0.4147.89
    1. Jimmy Ho

      @Victor

      老哥,你是怎样形成我是个萌妹纸的错觉???

      Jimmy Ho 萌萌哒博主 | | Windows 10 x64 Edition | Google Chrome 84.0.4147.89
  2. Vanson

    今天高考,来看看 ,加油

    Vanson | | Mac OS X 10.15.5 | Google Chrome 83.0.4103.116
  3. JimmyQin

    更新了?哇,支持一波。

    JimmyQin 友链认证 | | Windows 7 x64 Edition | Google Chrome 78.0.3904.108
  4. CYF

    Kagura Nana?(滑稽)

    CYF 友链认证 | | Windows 10 x64 Edition | Google Chrome 69.0.3497.100
  5. terrytao

    牛逼哇(

    terrytao 老司机 | | Windows 10 x64 Edition | Google Chrome 80.0.3987.149
    1. Jimmy Ho

      @terrytao

      括号没删干净啊注意点,不合格!

      Jimmy Ho 萌萌哒博主 | | Windows 10 x64 Edition | Google Chrome 80.0.3987.149
  6. 2878

    前排滋磁(滑稽)

    2878 老司机 | | Windows 10 x64 Edition | Google Chrome 80.0.3987.149

此处无声胜有声