让Typecho支持 emoji 的显示

typecho教程 2020-08-25

  今天有用户反应文章发出后显示不全,我第一时间就想到是自己模板外链转内链功能的,因为之前有人反馈过,后来我修复了,我以为还是它有问题,排查了下后发现并不是,然后后台一看文章内容,发现基本全消失了,这就让我想起来大佬2015年发过的文章,于是乎转载之

  文章转自:https://get233.com/archives/show-emoji-in-typecho.html

  刚开始玩 的时候就被狠狠的坑了一次,遥想当年,我兴冲冲的写了人生第一篇大肠文(大雾),只因为中间不小心手贱用了几个 , 提交后发现用 之后的内容全没了!全没了!啊!没了!啊!!

  无奈努力回忆着又草草写了篇没鸟用的文章就洗洗睡了,当时就下定决心一定要解决这个问题(并没有,其实是今天太闲→_→),于是在隔了一年的今天终于开始。。。。

  其实也不能说 不支持,毕竟是字符集的锅,跟 没有关系,总得来说还是太笨,毕竟连 都没救出来。。。

  之前用的是 的编码,在 中, 只支持最多 个字节,而 是 4 个字节,所以就出现了像上面那种惨绝人寰的问题。

  知道问题所在以后就好办多了:

  修改数据库 为 :

  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;

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

  $db->addServer(array (

  ’host’ => localhost,

  ’user’ => ‘me’,

  ’password’ => ‘my_password’,

  ’charset’ => ‘utf8mb4’, //修改这一行

  ’port’ => 3306,

  ’database’ => ‘蛤?’

  ), Typecho_Db::READ | Typecho_Db::WRITE);

  搞定~

  啊对了,对于不支持 的设备上大概会显示为框框吧,但至少不会像之前直接毫无人性的砍掉 ( 的锅) 之后的内容要好上太多了。。。

评论 (0)
    Top https://www.laoyua.com/sitemap.xml