❤️WordPress 支持 emoji 表情🧚‍♀️

昨天的时候,杜老师留言说有错别字,注射器写错了。我在手机上改的时候,添加了 一个💉的图标。在文章中是没有问题的:

但是呢,在评论回复的时候出错了,提示无法在数据库中保存注释信息,好像是这么个错误,当时没截图,具体的错误信息忘记了。嘻嘻。

对于这种智障错误,那肯定是不能忍的啊。emoji 表情,本质上还是 unicode 字符,所以这个保存不了猜测还是数据库编码和配置问题导致的。

绘文字(日语:絵文字/えもじ emoji)是日本无线通信中所使用的视觉情感符号,指图画,文字指的则是字符,可用来代表多种表情,如笑脸表示笑、蛋糕表示食物等。在中国,emoji通常叫做“小黄脸”,或者直称emoji
在NTTDoCoMo的i-mode系统电话系统中,绘文字的尺寸是12×12 像素,在传送时,一个图形有2个字节。Unicode编码为E63E到E757,而在Shift-JIS编码则是从F89F到F9FC。基本的绘文字共有176个符号,在C-HTML4.0的编程语言中,则另增添了76个情感符号。
最早由栗田穰崇(Shigetaka Kurita)创作,并在日本网络及手机用户中流行。
苹果公司发布的iOS 5输入法中加入了emoji后,这种表情符号开始席卷全球,emoji已被大多数现代计算机系统所兼容的Unicode编码采纳,普遍应用于各种手机短信社交网络中。 [1]

上文是百度百科的介绍,那么知道了问题的关键,要解决也应该不难,把数据库连接这整理字符集改成utf8mb4_unicode_ci

修改 wp 配置文件,修改数据库连接配置为:

/** 创建数据表时默认的文字编码 */                                                
define('DB_CHARSET', 'utf8mb4');                                                 
/** 数据库整理类型。如不确定请勿更改 */                                          
define('DB_COLLATE', 'utf8mb4_unicode_ci');   

另外 wp 貌似还有个 emoji 编码的功能,可以进行编码存储。但是这个需要添加代码,进行wp_encode_emoji之后 存储。

也没啥太大必要吧。

utf8mb4对应的排序字符集有utf8mb4_unicode_ci、utf8mb4_general_ci.

utf8mb4_unicode_ci和utf8mb4_general_ci的对比:

准确性:
utf8mb4_unicode_ci是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序
utf8mb4_general_ci没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致。
但是,在绝大多数情况下,这些特殊字符的顺序并不需要那么精确。
性能
utf8mb4_general_ci在比较和排序的时候更快
utf8mb4_unicode_ci在特殊情况下,Unicode排序规则为了能够处理特殊字符的情况,实现了略微复杂的排序算法。
但是在绝大多数情况下发,不会发生此类复杂比较。相比选择哪一种collation,使用者更应该关心字符集与排序规则在db里需要统一。

嗯,现在可以在留言中使用 emoji 表情了~~

☆版权☆

* 网站名称:obaby@mars
* 网址:https://lang.ma/
* 个性:https://oba.by/
* 本文标题: 《❤️WordPress 支持 emoji 表情🧚‍♀️》
* 本文链接:https://nai.dog/2023/09/13128
* 短链接:https://oba.by/?p=13128
* 转载文章请标明文章来源,原文标题以及原文链接。请遵从 《署名-非商业性使用-相同方式共享 2.5 中国大陆 (CC BY-NC-SA 2.5 CN) 》许可协议。


You may also like

19 comments

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 移动

      哈哈哈,这个截图是测试用的改插件的wp。我的实际数据库已经远超这些了。

  1.  Level 4
    Microsoft Edge 116 Microsoft Edge 116 Windows 10 Windows 10 cn江苏省徐州市 电信

    怪不得昨天晚上访问的时候显示数据库出错了 yes

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn山东省青岛市 移动

      嗯嗯,应该你访问的时候我在改数据库的配置。 smile

  2. Level 5
    Google Chrome 116 Google Chrome 116 Windows 10 Windows 10 us美国 华盛顿州西雅图Wowrack

    typecho也有这个毛病,之前不支持emoji,也是数据库编码问题。

    1. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Mac OS X 10.15 Mac OS X 10.15 cn山东省济南市 移动

      这个应该和wp一样,改下配置以及数据库的编码格式也可以解决。

  3.  Level 4
    Microsoft Edge 116 Microsoft Edge 116 Windows 10 Windows 10 cn山东省济南市长清区 移动

    我的emjio表情都改成图片了

  4.  Level 6
    Google Chrome 116 Google Chrome 116 Mac OS X 10.15 Mac OS X 10.15 cn浙江省杭州市 华数

    你还会手动改别人的错别字,啊哈哈。

    wp做这样的兼容是因为它是最广泛的建站程序呀。比如一些主机提供了一键安装 wp,但没有手动修改数据库的权限。

    1.  Level 6
      Google Chrome 116 Google Chrome 116 Mac OS X 10.15 Mac OS X 10.15 cn浙江省杭州市 华数

      但誓为什么药改别人的别错字啊,是会南受妈?🐶

      1. 公主 Queen 
        Google Chrome 114 Google Chrome 114 Windows 10 Windows 10 cn山东省临沂市 联通

        这个,哈哈哈。当然不会改啊。只改自己的。 sad

    2. 公主 Queen 
      Google Chrome 114 Google Chrome 114 Windows 10 Windows 10 cn山东省临沂市 联通

      嗯嗯,这么一说确实是。兼容性是最主要的。

  5.  Level 3
    Google Chrome 116 Google Chrome 116 Windows 10 Windows 10 usShanghai Shanghai

    说起评论,我觉得不加图片上传,或者加审核图片上传是明智的,有人用crisp给我发奇怪的图,我从震惊到惊恐再到无法形容,就是很恐怖,万一有人给我发血腥的图片,我觉得心理都不太好了,突然觉得审核管制挺不错的,至少让我精神还算正常~

    1. 公主 Queen 
      Google Chrome 116 Google Chrome 116 Mac OS X 10.15 Mac OS X 10.15 cn山东省济南市 移动

      嗯嗯。我的不能上传图片,但是可以外联外部图片。不过一旦带了连接就会自动到审核清单内。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注