pack2011にアップグレードしよう!
2-3 バックアップしたSQLデータをUTF-8に変換
バックアップしたSQLデータは、当然、エンコードがEUCとなっていますので、UTF-8に変換する必要があります。
文字コード変換ツール「KanjiTranslator 1.6」 などを使うと簡単に変換できますよ。
自分で確認して作業する場合は、EUCやUTF-8を取り扱うことができるエディターで行います。以下の記事を参考にしてください。なお、エクスポートしたファイルが圧縮されたものである場合は、当然ながら解凍してから編集することになります。
2-3-1 SQLファイル全体のエンコードをUTF-8に変換し、別ファイルとして保存
エディターでバックアップしたSQLデータを開きます。(ここでは、秀丸を使っています。)
まず最初に、エンコードの種類を確認します。
EUCのサイトからデータをエクスポートしたので、通常は、「日本語(EUC)」になっていると思いますが、場合によっては、「ラテン」など別の言語として扱われている場合もあるようです。
いずれにしても、ここで先にファイル全体のエンコードを変換しておきます。
秀丸ですと、メニューの「ファイル」「エンコードの種類」から「Unicode(UTF-8)」を選びます。
エンコードの切り替えの確認がでますので「内容を維持したまま適用」をクリックします。(ここで「ファイルを読み込み直す」を選んでしまうと、ほぼ全ての文字が化けてしまうので注意してください。)
変換できたら、「名前を付けて保存」。つまり、別ファイルとして保存してください。
ここで、上書きしてしまうと本来の「バックアップ」がなくなってしまうので、別途xcl218_euc_to_utf8.sql などのように、分かりやすい名称で保存すると良いでしょう。(拡張子は、必ず sql ですので、お間違えなく)
まず最初に、エンコードの種類を確認します。
EUCのサイトからデータをエクスポートしたので、通常は、「日本語(EUC)」になっていると思いますが、場合によっては、「ラテン」など別の言語として扱われている場合もあるようです。
いずれにしても、ここで先にファイル全体のエンコードを変換しておきます。
秀丸ですと、メニューの「ファイル」「エンコードの種類」から「Unicode(UTF-8)」を選びます。
エンコードの切り替えの確認がでますので「内容を維持したまま適用」をクリックします。(ここで「ファイルを読み込み直す」を選んでしまうと、ほぼ全ての文字が化けてしまうので注意してください。)
変換できたら、「名前を付けて保存」。つまり、別ファイルとして保存してください。
ここで、上書きしてしまうと本来の「バックアップ」がなくなってしまうので、別途xcl218_euc_to_utf8.sql などのように、分かりやすい名称で保存すると良いでしょう。(拡張子は、必ず sql ですので、お間違えなく)
2-3-2 ファイル内の編集(文字コードに関する記述の変更)
次にファイル内の編集です。先ほど保存したxcl218_euc_to_utf8.sqlについて、文字コードに関係する部分をUTF-8に対応できるように変更しましょう。
文字コードの変更
ファイルを秀丸などのエディターで開くと、次のような記述から始まっていると思います。(利用しているバージョンによって、少しずつ違ったりするようですが・・・)
# phpMyAdmin SQL Dump
# version 2.5.6
#
# ホスト: localhost
# サーバーのバージョン: 4.0.18
# PHP バージョン: 4.3.4
#
# データベース: `xcl218`
#
# version 2.5.6
#
# ホスト: localhost
# サーバーのバージョン: 4.0.18
# PHP バージョン: 4.3.4
#
# データベース: `xcl218`
#
このような記述がずらずらと続いている訳ですが・・・
全部を目で見て確認するのは流石に面倒なので、ここはエディターの検索機能を使うのが良いでしょう。エディターの検索窓に「CHARSET」と入力して検索してみてください。
該当する箇所があれば、検索にヒットすると思います。
これまでEUCで運用されてきたのですから、CHARSET=ujis; とか CHARSET=EUC; 、CHARSET=latin1; 、場合によっては CHARSET=eucjpms; なんてのになっている場合があるかもしれません。
もしかすると、CHARSETという言葉では全くヒットしない場合もあると思います。その場合は、直接、ujis とか EUC などで検索してみてくださいね。
この部分が文字コード(エンコード)指定ですので、今度は、エディターの置換機能を使って、文字コードにあたる部分を utf8 に置き換えます。
秀丸の場合、「全置換」ボタンを押すと一気に置き換わります。多分、他のエディターでも似たような機能があると思います。
置換が終わったら、今度は、「utf8」で検索して、変なところが置き換わっていないかを確認してみましょう。念を入れて、「CHARSET」で検索して確認するのも良いでしょう。もちろん、ファイル内を上から下まで目で追って確認するのもOK(でもこれ、結構面倒ですけどね。)
確認が終わったら、ファイルを保存しましょう。これで、SQLファイルは準備完了です。
文字化けの場合
ただし・・・Weblinksモジュールとかd3pipesモジュールのデータの場合、色々なところからデータを引用してデータベースに収納することから、文字コードが複雑な状態になっている場合があるようです。
参考:Re: EUC-JP 運営のサイトが UTF-8 に移行する手間は?
(weblinksは、SQLにダンプしても上手くいかないことがあるらしい。)
http://www.xugj.org/modules/QandA/index.php?post_id=9754
心当たりがある場合は、SQLファイル内で当該モジュールのデータ部分を見てみましょう。場合によっては、日本語の筈なのに変な文字に化けていることがあるかもしれません。
その場合、その部分だけコピー、エディターで新規画面を開いて張り付け、エンコードの種類を例えば「日本語(Shift-jis)」などに変えて、今度は「ファイルを読み込み直す」を選んでみてください。
こうすると、文字化けの文字がちゃんと読めるようになるかもしれません。
もし、まだ文字化けしているようなら、別のエンコードで試してみるのも良いでしょう。
それで、読める文字になったらその部分だけをコピーして、先ほどのSQLファイルに戻って、該当する部分と置き換えてください。
正直言って、かなり地道で面倒な作業となりますが、ここで頑張っておくとあとあと楽になりますよ。
参考 : 管理者の uname がマルチバイトになっている場合、データベースを修正した方が良いとのこと。
http://www.xugj.org/modules/d3forum/index.php?topic_id=1187#post_id6651
- 1XCL2.18(EUC)をpack2011(XCL2.2 UTF-8)にアップグレードしてみよう!
- 21 アップグレード作業に必要な(あった方が良い)環境・ソフトとサーバ要件
- 32 アップグレードの手順
- 42-1 サイトのアップグレード方針を決める
- 52-2 アップグレードしたいサイト(実サイトのXOOPS)のバックアップ
- 6
- 72-4 バックアップしたデータを使って、ローカル環境にて実サイトを再現
- 82-4-1 ローカル環境を用意しよう!
- 92-4-2 ローカル環境を立ち上げ、phpMyAdminでデータベースを作成しよう
- 102-4-3 エクスポート(バックアップ)したSQLファイル(データ)をインポートしよう!
- 112-4-4 実サイトのバックアップファイルをローカル環境にコピーしよう
- 122-4-5 mainfile.phpの書き替え作業
- 132-4-6 実サイトが再現される
- 142-4-7 文字化けしている場合の対処方法
- 152-5 ローカル環境で再現した実サイトをアップグレードする
- 162-5-1 pack2011のダウンロードと解凍、XAMPPに再現したサイトへの上書き
- 172-5-2 必要ファイルの移動とmainfile.phpの確認・編集
- 182-5-3 ファイルとフォルダの削除
- 192-5-4 アップグレード
- 202-6 ローカル環境で、アップグレード後の動作検証を行う
- 212-6-1 管理画面が文字化け? (言語定数の設定変更)
- 222-6-2 繰り返し確認しましょう(トラブルシューティング)
- 232-7 実サイトのアップグレード作業
- 242-7-1 バックアップ
- 252-7-2 実サイトをアップグレードする
- 262-8 やっておくべき作業
- 272-9 もし、上手く行かなかったら・・・
- 282-10 上手くアップグレードできたら、いざ公開!