本文编写于 202 天前,最后修改于 171 天前,其中某些信息可能已经过时。

有的变成了?,有的变成了空格,有的直接乱码了,这是为什么呢?

typecho支持emoji方法:数据库设置utf8mb4编码,config文件把utf8改为utf8mb4就行了

前几天我的服务器到期了,刚好入手了一年tx云的学生机,就决定把博客迁移过来(原域名也不用了,因为没有备案)。

迁移过来开始是没发现什么问题的,还顺手氵了一个文章。

就在刚刚,我忽然发现我的表情符失效了!?这才意识到,typecho是不支持emoji表情符的,因为数据库是utf8编码,utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。说巧不巧,emoji表情符就是4字节的宽字符。在之前我将utf8改成了utf8mb4,就顺利解决了这个问题。但是,百密一疏。

在这次的博客迁移过程中,我并没有给新机器的数据库设置utf8编码,导致emoji全部失效。我顺手还把之前的数据库文件删掉了。emm...那就没办法了,现在已经重新设置utf8mb4编码,之后就可以继续使用emoji,但是之前的嘛,就算了,也不挽救了,就这样吧。

一后在备份的时候,一定要考虑周全啊

通常我们并不会用到utf8mb4编码,相对utf8mb4来说,utf8更省空间,在不需要4几节的字符时,还是用utf8就行了