WordPress JAPAN

EUC-JPからUTF-8への文字コード変更

作業前の確認事項

  1. 現在使用中のWordPressのバージョンはどれなのか
  2. サーバースペースの環境はv2.2以降に対応しているか
  3. テーマファイルに直接日本語を記述していないか
  4. プラグインにより他のデータテーブルが追加されていないか

作業の流れ

  1. データベースの内容ををバックアップする
  2. メンテナンス中であることをお知らせする
  3. テーマファイルの日本語文字列を英字に置き換える
  4. データベースのテーブル名(接頭語)を変更する
  5. phpMyAdminをクイックハックする
  6. EUC-JPからUTF-8へ変換したデータをダウンロードする
  7. ダウンロードしたデータを適用する
  8. WordPressの文字コード設定を変更する
  9. wp-config.phpの内容を修正する
  10. テーマファイルの日本語表記を元に戻す
  11. メンテナンスモードを解除する

データベースの内容ををバックアップする

phpMyAdminを使い、現在のデータベースの内容をバックアップします。

エクスポートタブをクリックすると以下のようなページに切り替わりますので、こちらの画像を参考にチェックマークを付け「実行する」ボタンをクリックしてください。サンプルですので、220_という接頭語は気にしないでください。ほとんどの場合、ここはwp_になっていると思います。

データのエクスポート

ダウンロードしたファイルは解凍する必要はありません。イザというときにブログを元の状態に戻せるようファイル名と保存場所を把握しておいてください。

メンテナンス中であることをお知らせする

メンテナンス中にコメントが付いたりして、データベースの内容が変更されることはあまり好ましいことではありません。1時間ぐらいきっちりと自サイトと向き合うつもりで、完全に一時閉鎖の状態にしてしまいましょう。

Maintenance Mode 日本語版
http://wppluginsj.sourceforge.jp/i18n-ja_jp/maintenance-mode/

テーマファイルの日本語文字列を英字に置き換える

テーマファイルのsidebar.phpなどに直接日本語を記述している場合には、仮にローマ字などに変更しておきます。

 <li id="get_flickr"><h2>ウィ・ラヴ・ワードプレス</h2>
	<ul>
		<li class="flickr"><?php get_flickrrss(); ?></li>
	</ul>
 </li>

上記のような記述がある場合は、以下のように変更しておく。

 <li id="get_flickr"><h2>We Love WordPress</h2>
	<ul>
		<li class="flickr"><?php get_flickrrss(); ?></li>
	</ul>
 </li>

データベースのテーブル名(接頭語)を変更する

テーブル名を変更することで、元データと明確に区別することができ、作業状況を把握しやすくなります。また、セキュリティ上wp_という接頭語以外を使用することが推奨されていますので、この機会を利用してテーブル名を変更しておいてください。v2.0系とv2.1系の違いはリンクカテゴリー情報を格納するテーブル名だけです。よく確認してからコードを実行してください。

WordPress ME2.0.10 WordPress ME2.1.3
wp_categories wp_categories
wp_comments wp_comments
wp_linkcategories wp_link2cat
wp_links wp_links
wp_options wp_options
wp_post2cat wp_post2cat
wp_postmeta wp_postmeta
wp_posts wp_posts
wp_usermeta wp_usermeta
wp_users wp_users

以下は実行クエリーの例です。これらを、phpMyAdminのSQL欄にペーストして「実行する」をクリックします。サンプルでは、wp_という接頭語をutf_に変更しています。再度同じことを書きますが、バージョンによる違いをよく確認してからコードを実行してください。

ALTER TABLE wp_categories RENAME utf_categories
ALTER TABLE wp_comments RENAME utf_comments
ALTER TABLE wp_linkcategories RENAME utf_linkcategories
ALTER TABLE wp_links RENAME utf_links
ALTER TABLE wp_options RENAME utf_options
ALTER TABLE wp_post2cat RENAME utf_post2cat
ALTER TABLE wp_postmeta RENAME utf_postmeta
ALTER TABLE wp_posts RENAME utf_posts
ALTER TABLE wp_usermeta RENAME utf_usermeta
ALTER TABLE wp_users RENAME utf_users

phpMyAdminの「SQL」タブをクリックすると、こちらの操作画面になります。
確実に1行ずつ実行してください。

# カンマ区切りでまとめて実行できるはずなのですが、何故かエラー回避できません。

テーブル名の変更

phpMyAdminをクイックハックする

ローカルで巨大なテキストデータを開いて変換する作業を回避します。
サーバー上にあるphpMyAdminのlibraries/kanji-encoding.lib.phpを以下のものと置き換えてください。日本語制御ライブラリに少し手を加えたものです。

EUC-JPからUTF-8へ変換したデータをダウンロードする

「UTF-8 エンコーディングへ変換する」にチェックを入れて、圧縮されたファイルをダウンロードします。通常のバックアップ手順に文字コード変換作業が加わるだけです。

変換されたデータのダウンロード

ダウンロードしたデータを適用する

テーブルが存在していながらCREATE文を実行するとエラーになりますので、先に既存のデータテーブルを削除します。元データのバックアップを取っているはずなので、問題ありませんね?

既存テーブルを削除

「構造」タブをクリックすると上記の画面になります。

変換データのインポート

そのまま続けて、変換されたデータをインポートします。上手くいけば、データの適用はボタン一つです。

インポートは正常終了しました

もしエラーが発生した場合は、phpMyAdminのエラーメッセージに従って該当箇所を修正(削除)してください。この場合はデータを解凍し、テキストエディタで編集しなければならなくなります。

WordPressの文字コード設定を変更する

blog_charsetの値をEUC-JPからUTF-8に変更します。以下のコードのutf_optionsとなっているところはご自身のテーブル名に置き換えて実行してください。

UPDATE utf_options SET option_value = 'UTF-8' WHERE option_name = 'blog_charset';

文字コードの変更

wp-config.phpの内容を修正する

mb_internal_encoding("EUC-JP");
define ('WPLANG', 'ja_EUC');

$table_prefix  = 'wp_';

上記内容を以下のように変更します。

mb_internal_encoding("UTF-8");
define ('WPLANG', 'ja_UTF');

$table_prefix  = 'utf_';

テーマファイルの日本語表記を元に戻す

テーマファイルのsidebar.phpなどの仮のローマ字表記を日本語に戻し、UTF-8N(ボム無し)で保存してサーバー上のファイルを上書きします。

メンテナンスモードを解除する

Maintenance Modeプラグインを解除し、必ずログアウトした状態で自サイトの表示を確認します。

以上、お疲れ様でした。

(C) 2003-2008 WordPress Japan