WordPress 2025.12.27

WordPress多言語サイトで文字化け発生!データベース文字コード完全対応ガイド

約10分で読めます

WordPress多言語サイトで日本語が文字化けして困っていませんか?データベース文字コードの設定から根本的な解決方法まで、20年の実績をもつ技術者が実案件ベースで解説します。

こんな文字化けトラブルで困っていませんか?

  • WordPress多言語サイトで日本語だけが「???」で表示される
  • 英語は問題ないのに、日本語の投稿やコメントが文字化けする
  • プラグインで多言語化したら突然文字化けが発生した
  • データベースのバックアップから復元したら文字化けした

こうした文字化け問題は、実はデータベースの文字コード設定が原因であることがほとんどです。

弊社でも先月、多言語ECサイトを運営されているクライアント様から「商品説明が全て文字化けしてしまった」とのご相談をいただきました。売上に直結する問題だったため、緊急対応で完全復旧させた実体験をもとに、根本的な解決方法をご紹介します。

なぜWordPress多言語サイトで文字化けが起きるのか?

データベース文字コードの不一致が主な原因

WordPress多言語サイトでの文字化けは、以下の3つの文字コード設定に不一致があることで発生します:

  1. データベースの文字コード(MySQL/MariaDB側)
  2. WordPressの文字コード設定(wp-config.php)
  3. Webブラウザの文字コード認識

特に、latin1(ラテン文字用)でデータベースが構築されている環境に、日本語などのマルチバイト文字を保存しようとすると確実に文字化けします。

実案件で遭遇した典型的なケース

あるクライアント様では、海外のレンタルサーバーでWordPressサイトを構築されていました。多言語プラグイン(WPML)を導入して日本語対応を行ったところ、以下の症状が発生:

  • 英語コンテンツ:正常表示
  • 日本語コンテンツ:「????」で表示
  • 管理画面:日本語メニューが文字化け

調査の結果、データベースが latin1_swedish_ci で構築されており、日本語文字を保存できない状態でした。

データベース文字コードの確認と修正方法

ステップ1:現在の文字コードを確認

まず、phpMyAdminまたはコマンドラインでデータベースの文字コードを確認します。

-- データベース全体の文字コード確認
SHOW CREATE DATABASE your_database_name;

-- テーブルごとの文字コード確認
SHOW TABLE STATUS FROM your_database_name;

-- カラムごとの詳細確認
SHOW FULL COLUMNS FROM wp_posts;

ステップ2:文字コードをutf8mb4に変更

重要:必ずデータベースのバックアップを取得してから実行してください。

-- データベース全体をutf8mb4に変更
ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 主要テーブルの文字コード変更
ALTER TABLE wp_posts CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_postmeta CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_comments CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_options CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_users CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_usermeta CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ステップ3:wp-config.phpの設定確認

WordPress側の文字コード設定も確認・修正します。

// wp-config.phpに以下の設定があることを確認
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', 'utf8mb4_unicode_ci');

多言語プラグインとの連携で注意すべきポイント

WPMLでの文字化け対策

WPMLを使用している場合、言語テーブルも文字コード変更が必要です:

-- WPML関連テーブルの文字コード変更
ALTER TABLE wp_icl_translations CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_icl_translation_status CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Polylangでの注意点

Polylangの場合、タクソノミー関連のテーブルも対象になります:

-- タクソノミー関連テーブル
ALTER TABLE wp_term_taxonomy CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE wp_terms CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

文字化けデータの復旧方法

既に文字化けしたデータがある場合

先ほどのクライアント様のケースでは、商品データが既に文字化けしていました。この場合は以下の手順で復旧:

  1. 正常なバックアップがあるか確認
  2. 文字化け前のデータをCSVエクスポート
  3. 文字コード修正後に再インポート

バックアップがない場合は、Google キャッシュやWayback Machineから文字化け前のテキストを復旧することも可能です。

復旧用SQLクエリ例

-- 特定の投稿の文字化けデータを確認
SELECT post_title, post_content 
FROM wp_posts 
WHERE post_title LIKE '%?%' OR post_content LIKE '%?%';

-- 手動でのデータ修正
UPDATE wp_posts 
SET post_title = '正しいタイトル', post_content = '正しい内容' 
WHERE ID = 投稿ID;

よくある失敗パターンと対策

失敗パターン1:文字コード変更で別の文字化けが発生

「CONVERTコマンドを実行したら、今度は別の文字が化けた」という相談もよくいただきます。これは、既に文字化けしたデータに対してCONVERTを実行したためです。

**対策:**事前に文字化けデータを特定し、正常なデータのみCONVERT実行する

失敗パターン2:一部のテーブルの変更を忘れる

WordPressには数十のテーブルがあり、カスタムフィールドやプラグイン用テーブルの変更を忘れがちです。

**対策:**以下のクエリで全テーブルを一括変更

-- 全テーブルの文字コード一括変更スクリプト生成
SELECT CONCAT('ALTER TABLE ', table_name, ' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;')
FROM information_schema.tables 
WHERE table_schema = 'your_database_name';

失敗パターン3:サーバー側のMySQLバージョンが古い

utf8mb4はMySQL 5.5.3以降でサポートされています。古いサーバーではutf8(3バイト)を使用します。

-- MySQL バージョン確認
SELECT VERSION();

-- 古いバージョンの場合はutf8を使用
ALTER DATABASE your_database_name CHARACTER SET utf8 COLLATE utf8_unicode_ci;

文字化け対策後の効果とメリット

実際のクライアント様での成果

文字コード問題を完全解決したクライアント様では、以下の改善が見られました:

  • 売上回復:商品説明の文字化けが解消され、コンバージョン率が元の水準に回復
  • SEO改善:検索エンジンが日本語コンテンツを正しく認識するようになり、検索順位が向上
  • 業務効率化:管理画面の文字化けが解消され、スタッフの更新作業が円滑に
  • ユーザビリティ向上:問い合わせフォームの文字化けが解消され、顧客からの相談が増加

今後の文字化け予防効果

一度utf8mb4に統一すれば、以下のような文字化けリスクも軽減されます:

  • 絵文字(😀)の表示エラー
  • 外国語文字の混在
  • CSV インポート時の文字化け
  • データベース移行時のトラブル

まとめ:次にやるべきアクション

WordPress多言語サイトでの文字化けを根本解決するため、まず以下を実行してください:

  1. 現在のデータベース文字コードを確認(上記SQLで確認)
  2. データベースの完全バックアップを取得
  3. utf8mb4への変更を段階的に実行
  4. WordPress設定ファイルの文字コード統一
  5. 文字化けデータの復旧作業

文字化け問題は、放置すると売上やSEOに深刻な影響を与えます。特にEC サイトや多言語ビジネスサイトでは、一刻も早い対応が必要です。

**技術的な作業に不安がある場合や、重要なサイトでリスクを避けたい場合は、専門家にご相談ください。**弊社では、データベース作業からWordPress設定まで、文字化け問題の完全解決をサポートしています。まずはお気軽にお問い合わせいただければ、現状調査から対応方針までご提案いたします。

この記事をシェア