zishu's blog

zishu's blog

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

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

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

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

第一步、データベースに入る#

まず、ブログのバックエンドのデータベースにログインし、次に 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;

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

第二步、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);

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

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