给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即可。

 

版权声明:
作者:蓝逸轩
链接:https://www.12xf.cn/413.html
来源:星锋网
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>