zishu's blog

zishu's blog

一个热爱生活的博主。https://zishu.me

typechoのブログで、絵文字が表示されない問題

typecho ブログを作成した後、いくつかの絵文字を挿入すると、ページがレンダリングされた後に絵文字が表示されず、絵文字の後のコンテンツがすべて消えてしまい、ユーザーエクスペリエンスが非常に悪くなります。

絵文字が表示されない原因は、uft-8 のエンコーディングの問題であり、小さな絵文字を認識できないため、utf8mb4 に変更する必要があります。

ステップ 1:データベースにアクセスする#

まず、ブログのバックエンドにログインし、[SQL] をクリックして、次のコードを入力します:

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;

コードをコピーして、右下の [実行] をクリックします。

ステップ 2:typecho の設定ファイルを変更する#

私は宝塔パネルを使用しています。左側の [ウェブサイト] をクリックし、このウェブサイトのルートディレクトリに移動し、[config.inc.php] というファイルを見つけることができます。ファイルに入り、一番下までスクロールします。

**'charset' => 'utf8',** の下に、より直感的に表示するために、コメントアウトして書き直しましたが、実際の操作では、utf8utf8mb4に変更するだけです。

/** データベースパラメータを定義 */
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
$db->addServer(array (
  'host' => 'localhost',
  'user' => 'blog',
  'password' => 'blog',
  /** 'charset' => 'utf8', */
  'charset' => 'utf8mb4',
  'port' => '3306',
  'database' => 'blog',
), Typecho_Db::READ | Typecho_Db::WRITE);
Typecho_Db::set($db);

記事のバックエンドで絵文字を再入力し、保存してページに戻ると、絵文字が正常に表示されます。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。