2019.05.07 | 零零碎碎 | 7052 浏览 | 3 赞 | 5 条评论


请注意,本文编写于 2039 天前,最后修改于 2039 天前,其中某些信息可能已经过时。
AI摘要:本文介绍了如何在 Typecho 博客中支持 emoji 显示。主要原因是 Typecho 使用的 UTF-8 字符集在 MySQL 中只支持最多 3 个字节,而 emoji 是 4 个字节。解决方法是将数据库 charset 修改为 utf8mb4,并在 Typecho 配置文件中修改数据库定义参数的 charset 为 utf8mb4。修改后,emoji 可以在 Typecho 中正常显示。

Powered by AISummary and MoonShot KimiChat.

前两天写文章写到兴头上,想加一个🤣这个表情,结果 Typecho 并不想支持我这么做并且把我之前写的东西全删了🤣,虽然不爽但还是先发出来要紧,于是也就没计较太多。不过思来想去傻翠这么可爱一个孩子,没有 emoji 简直不爽。于是在网上搜了搜,找到了让 Typecho 支持 emoji 的方法。

具体来说 Typecho 不支持 emoji 的主要原因是字符集的锅。之前用的是 UTF-8 的编码,在 MySQL 中,UTF-8 只支持最多 3 个字节,而 emoji 是 4 个字节,所以就出现了这种惨绝人寰的问题。估计当时 Typecho 的人也没想到 emoji 现在会这么流行,MySQL 的估计更没想到吧🤣

知道问题也就好修改了。修改的关键就是要把文字的数据类型从 utf 换位 utf8mb4,具体操作方法如下:

修改数据库 charset 为 utf8mb4:

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;

修改 Typecho 配置文件中数据库定义参数中的 charset 为 utf8mb4:

$db->addServer(array (
    'host'      =>  localhost,
    'user'      =>  'me',
    'password'  =>  'my_password',
    'charset'   =>  'utf8mb4', //修改这一行
    'port'      =>  3306,
    'database'  =>  'typecho'
), Typecho_Db::READ | Typecho_Db::WRITE);

啊,当然了,如果电脑或者浏览器原本就不支持 emoji,也就自然没有办法显示辽,这也是没有办法的事情嘛 //摊手

就是可惜自己现在的笔记本 leanote 还不支持 emoji 🤣,如果博客中需要添加 emoji 还需要写好之后再现添加,有点麻烦 嘤 不过能显示就很好啦ww

大家也可以试试在下面用 emoji 评论鸭 🙈!表情功能之后也会加的!

参考链接

本文链接:https://www.idealclover.top/archives/559/

本作品由 idealclover 采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可,转载请注明出处。

标签: 博客, 文章, set, 文件, 链接, 数据库, utf8mb4, emoji, alter, collate, convert

3

已有 5 条评论


  1. Ryushane
    Ryushane 回复

    搜教程搜到你这了,牛啊脆脆

  2. feiyuyu
    feiyuyu 回复

    试试🤣

  3. idealclover
    idealclover 回复

    试验评论🤣

    1. 无事可做
      无事可做 回复

      修改数据库 charset 为 utf8mb4 这个数据库是typecho数据库吗

      1. idealclover
        idealclover 回复

🤔关于我
翠翠 idealclover
Product Manager @ByteDance
南京大学 2016 级本科生
了解更多
🏠关于博客
基于 Typecho 博客框架
使用个人的 clover clover 主题