Tominysun

前言

其实之前看到过类似的文章,但是我emoji用的不多,没有修改自己的网站数据库.
然后在前2篇文章中,出现过emoji的文章,后面全都丢失了!!!?

正文

通过修改数据库编码格式使得Typecho支持emoji

1. 整理数据库编码

  • 进入PHPmyadmin,选择Typecho所使用的数据库
  • 操作 --> 整理 --> 选择 utf8mb4_unicode_ci

2. 运行sql语句修改数据库编码

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

3. 修改数据库配置文件

  • 网站根目录数据库配置文件config.inc.php
  • 大概在最后边
/** 定义数据库参数 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
  ...
  'charset' => 'utf8mb4',  // 修改编码为 utf8mb4
  ...
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

原文

https://www.yifer.net/app-tech/typecho-emoji.html

已有 4 条评论

  1. #¥%
    #¥% 10Chrome 80

    讲的不错,白嫖了

    1. Tominysun
      Tominysun 作者君 10火狐浏览器 74

      欢迎来访!
      但是,你的网址...?
      注意身体啊...

  2. Heresy
    Heresy Chrome 91

    更改所有表序列要不用选上

    1. Tominysun
      Tominysun 作者君 10Chrome 92

      emm...其实每一行sql代码只是把对应的数据表修改好,也不一定非要用sql代码。
      typecho的数据结构应该没有大的变化,你也可以选择把所有的表都改成对应的编码格式。
      至于'更改所有表序列'嘛,我还真没碰到过。本文只需要更改数据表的编码。(与表序列没啥关系?)

添加新评论