このブログはシンフリーサーバーのWordPressで運用している(執筆時)。
記事を書こうとしたところ、「𝕏」という特殊文字が保存できなかった。

そういえば過去にMySQLの案内がメールで来ていたことに気づいて確認してみると、以下のような内容だった
■対応日
2025年1月28日(火)■対象サービス
『シンフリーサーバー』 全プラン■対応内容
「MySQL設定」機能において、
文字コード「utf8mb4」でのデータベース作成が可能になりました。また、「WordPress簡単インストール」機能および「WordPress簡単移行」機能において、
生成されるデータベースの文字コードは「utf8mb4」が設定されます。■ご利用方法
詳細な手順は、以下のマニュアルをご参照ください。
なるほど。新しく作成する分だから現時点でのものはそのまま、というわけね。
シンフリーサーバーのphpMyAdminで確認してみる。
SELECT
COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'wp_posts';

なるほど、文字コードがutf8になっている。おそらくこれが原因だろう。
以下のサイトを参考に、データベースやテーブルの文字コード及び照合順序を変更した。
データベースの変更クエリは1回に対し、テーブルの変更クエリは存在するテーブル1つ1つ行うので12回ほど実行した。プラグインによってテーブルが作成されている場合はさらに増えると思う。

MySQLのテーブル作成後に、文字コードをutf8mb4に変更する
MySQL のテーブルの文字コード latin1 と utf8mb4 が混在しているシステムを utf8mb4 に統一す ...
再度同じクエリを投げてみる。

無事文字コードと照合順序が変更でき、「𝕏」を含む投稿も保存できた。
コメント