2026年7月7日
2026年7月7日
WordPressのSJIS・EUCからUTF-8に変換する方法
はじめに
ここでは、既存のWordPressサイトがSJISまたはEUC-JPでエンコードされたデータベースからUTF-8への変換方法を紹介します。この手順は、新しいホスティングプロバイダーがUTF-8でのみサポートしている場合や、サイトの国際化(I18N)対応を進める際に役立ちます。
症状・背景
WordPressデータベースのエンコーディングがSJISまたはEUC-JPから変更する必要がある主な場面:
- <場面1>: ホスティングサービスがUTF-8でのみサポートしている場合
- <場面2>: サイトを国際化し、多言語対応を検討している場合
- <場面3>: 文字コードの統一を図り、サイト全体の一貫性を高めたい場合
- <場面4>: 既存データベースから新しいエンコーディング方式への移行が必要な場合
手順・設定方法
ステップ1: バックアップを作成
WordPressデータベースを変更する前に、必ずバックアップを取ります。
# MySQLデータベースのdumpファイルを作成
mysqldump -u [DB_USER] -p[DB_PASSWORD] [DB_NAME] > wp_backup.sql
ステップ2: データベースエンコーディングの確認
まず、現在のデータベースエンコーディングを確認します。
# MySQLクライアントを起動し、データベースに接続
mysql -u [DB_USER] -p[DB_PASSWORD]
# 現在のデータベースエンコーディングを確認
SHOW VARIABLES LIKE 'character_set_database';
ステップ3: データベースエンコーディングの変更
次に、SJISまたはEUC-JPからUTF-8への変換を行います。
# 現在のデータベースの文字コードを確認
SHOW CREATE DATABASE [DB_NAME];
# エンコーディングをUTF-8に変更(SJISの場合)
ALTER DATABASE [DB_NAME] CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
# エンコーディングをUTF-8に変更(EUC-JPの場合)
ALTER DATABASE [DB_NAME] CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ステップ4: テーブルエンコーディングの変更
データベース全体のエンコードをUTF-8に変更したら、テーブルのエンコーディングも確認・変更します。
# 各テーブルのエンコーディングを確認するSQL文を作成
SELECT table_name, column_type FROM information_schema.columns WHERE table_schema = '[DB_NAME]' AND character_set_name != 'utf8mb4';
# 識別されたテーブルをUTF-8に変更
ALTER TABLE [TABLE_NAME] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ステップ5: データのエンコーディングの変更
データベースとテーブルがUTF-8で設定されたら、データ自体も同じ文字コードに変換します。
# エンコードを変更するSQL文を作成(SJISの場合)
UPDATE [TABLE_NAME] SET [COLUMN_NAME] = CONVERT(CAST(CONVERT([COLUMN_NAME] USING binary) AS BINARY) USING utf8mb4);
# エンコードを変更するSQL文を作成(EUC-JPの場合)
UPDATE [TABLE_NAME] SET [COLUMN_NAME] = CONVERT(CAST(CONVERT([COLUMN_NAME] USING binary) AS BINARY) USING utf8mb4);
ステップ6: WordPressの設定ファイル更新
wp-config.phpを編集し、データベース接続情報に変更が適切に反映されていることを確認します。
# wp-config.phpを開く
nano /var/www/html/wp-config.php
# データベースエンコーディング情報を確認・修正
define('DB_CHARSET', 'utf8mb4');
ステップ7: WordPress更新とテスト
変更が完了したら、WordPressを更新し、サイトの表示を確認します。
# WordPressファイルを最新に更新
cd /var/www/html/
sudo chown -R www-data:www-data .
git pull origin main
# サイトの動作を確認
http://[SERVER_IP]/wp-admin/install.php
注意事項
- <実践的な注意点1>: データベース変更は慎重に行い、必ずバックアップを取りましょう。
- <実践的な注意点2>: 全てのテーブルとカラムがUTF-8に適切に変換されていることを確認してください。
- <セキュリティ上の注意>: 変更後はデータベースの安全性を再度評価し、必要なアクセス制御を行ってください。
- <パフォーマンス/運用上の注意>: UTF-8を使用することでデータサイズが増加する可能性があるため、適切なオプションとインデックス設定を確認してください。
まとめ
1. バックアップ: 変更前に必ずWordPressデータベースの完全なバックアップを作成します。
2. エンコーディングチェック: 現在の文字コードを正しく理解し、適切な変換方法を選択します。
3. データベース・テーブル更新: データベースと各テーブルのエンコーディングをUTF-8に更新します。
4. データ更新: 各テーブル内のデータが正しくUTF-8エンコードされていることを確認します。
5. WordPress設定確認: wp-config.phpでの設定が適切に反映されているか、再度チェックを行います。
関連記事: