さくらインターネットのサーバーの設定を、php.iniをいじってUTF-8化しました。
後々のAjaxやphpの動作環境を整えるにあたり、UTF-8に対応しておいたほうがいいと思いまして。
WordPressもUTF-8対応ですし。
ですが、さくらインターネットにインストールしていたXOOPSがEUC-JPで、文字化けを起こしてしまいました。
UTF-8化後に、新規にWordPressもインストールしていたので、もう元には戻れなく・・・
UTF-8化への道のり
XOOPSはUTF-8に対応していなかったので、自分でUTF-8化しました。
元々インストールしていたのは、開発が終了した2.0.16a JPのバージョンだったので、
大幅アップグレード?したXOOPS Cube Legacy 2.1 RC2を1からインストールしてUTF-8に。
サーバーのphp.iniの設定
mbstring.internal_encoding = UTF-8
default_charset = UTF-8
に変更
ファイルをUTF-8化する
html/install/language/japanese(1からインストールする場合)
html/language/japanese
html/modules/モジュール名/language/japanese
xoops_trust_path/modules/モジュール名/language/japanese(altsysを導入している方)
xoops_trust_path/libs/altsys/language/japanese(altsysを導入している方)
html/themes/
モジュールに日本語が入っている場合(テンプレートやコア部分に日本語が埋め込まれている場合)
html/modules/モジュール名/
html/modules/モジュール名/templates
上記をUTF-8Nに変換する。
ここで注意したいのは、UTF-8とUTF-8Nの二つの種類がある。
ここでUTF-8を選んでしまうと、サイトの文字が大きくなったり、文字化けする場合があるので、必ずUTF-8Nを選択する。
一括置換に役立ったソフト
Vecter一括置換ソフト一覧
その中でのオススメソフト
KanjiTranslator
UTF-8Nに置換する場合は、変換先文字コードを「UTF-8(BOM無し)」を選択すること。
ファイルの書き換え
html/modules/legacy/language/japanese/global.php(Legacy 2.1 RC2)
html/language/japanese/global.php(2.0.16a JP)
上記のファイルの
define(‘_CHARSET’, ‘EUC-JP’);
↓
define(‘_CHARSET’, ‘UTF-8’);
その他モジュールのMETAのcharsetをEUC-JPからUTF-8へ。
Dreamweaverなどで、フォルダ後と検索すると見つけやすい。
ただし、一括置換は辞めておいたほうがよいです。
UTF-8化で注意すること。
XOOPSを既に構築していて、データベースに記事など様々な情報がはいっている場合、UTF-8化はしない方がいいでしょう。
データベースにバックアップを取ってUTF-8化、その後インポートしようとしても、
データベースの方がその情報をEUC-JPで文字コードを読み込んでいるので、文字化けは直りません。
UTF-8化後に書く記事には文字化けは起こりませんので、まだデータ量が少ない人は、書き換えれば直ると思います。
たとえば、文字化けしている部分を、ブラウザ(FireFoxの場合)の「表示→文字エンコーディング→EJC-JP」にして、元のデータの文字をコピペ。
再読み込みして、文字エンコーディングをUTF-8にしたら、ペーストして保存する。
かなり大雑把にやってしまいましたが、取りあえず成功したみたいです。
一部モジュールで文字化けしていますが、モジュールのテンプレートをUTF-8Nにすれば直ると思います。
※必ず、テスト環境を作って、確認してから移行したほうがよいです。
コメント