MENU

在PhpMyadmin中设置让Typecho支持Emoji表情😄

• March 3, 2020 • Read: 295 • 分享

原因

Mysql支持的 UTF-8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。
三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。

也就是说,任何不在基本多文本平面的 Unicode 字符,都无法使用 Mysql 的 UTF-8 字符集存储。
这个显然超过了目前常用的UTF-8字符集的编码范围u0000-uFFFF。

Emoji就是一种在Unicode位于u1F601-u1F64F区段的字符。

MySQL在5.5.3之后增加了这个 utf8mb4 的编码,mb4 就是 most bytes 4 的意思。
专门用来兼容四字节的 unicode ,以解决 utf-8 的缺点。

好在 utf8mb4 是 utf8 的超集,除了将编码改为 utf8mb4 外不需要做其他转换。::quyin:1huaji::

实际操作

1.修改Typecho数据库编码

在PhpMyadmin中选择Typecho数据库,操作-->排序规则-->选择utf8mb4_unicode_ci 然后点执行。

然后复制下面?的命令到控制台CTRL+V粘贴然后CTRL+ENTER。

alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_options convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_unicode_ci;
alter table typecho_users convert to character set utf8mb4 collate utf8mb4_unicode_ci;

图片演示

图片说明

2.修改Typecho配置文件

Typecho网站根目录目录打开config.inc.php 文件修改如下:

'charset' => 'utf8',` 改成 `'charset' => 'utf8mb4',

Typecho正式版本1.1(17.10.30)的第60行!

这样Typecho就可以使用emoji表情了,很多输入法都自带这个表情。

没有的话,直接复制粘贴表情也可以!

表情() 示( 里)() 下( 哨):

😃 😄 😅 😆 😉 😊 😋 😎 😍 😘

Last Modified: March 23, 2020
Archives QR Code Tip
QR Code for this page
Tipping QR Code
Leave a Comment

0:00