2008年4月15日

[mysql 14435] バージョンアップによる日本語文字化けからの復旧(操作可能範囲が制限された環境下での)

はじめまして、桜井と申します。

<経験>
・MySQLについては、phpmyadminにある機能を使った操作のみ経験があり、SQLの
知識はありません。
・DB管理システムは1990年代後半にMS ACCESSとFile Maker、1990年代初めにIBM
等の汎用機のものを使ったぐらいです。


<助言いただきたい問題>
ホスティングサービスでXOOPS Cubeを使ったサイトを動かしていたのですが、ホ
スティング業者が今年2月に利用環境(PHPおよびMySQL)をバージョンアップし
たところ、MySQL内の日本語データが文字化けを起こしてしまいました。ホス
ティング業者に抗議したところ、「XOOPS側の問題」という返答が来たのです
が、文字化け発生後に日本語コンテンツをXOOPS経由で新規登録するときちんと
表示されます。

文字化けした日本語データは、phpmyadminからエクスポートして、テキストエ
ディタ上で文字コードを色々変えてみても修復ができませんでした。もちろん
XOOPS側の環境でDBアクセス時の文字コードを決め打ちしてもだめでした。

XOOPSへの表示はともかく、テキストエディタ上でもウェブブラウザ上でも構わ
ないので、日本語のデータを判読可能な状態にしたいのですが良い方法はないで
しょうか?レンタルサーバのユーザとして、DBへのアクセスはphpmyadmin
(2.8.2.4)もしくはphpのプログラムを作成して行うしか方法はありません。ま
た、DBの環境自体の変更はできないという条件なのですが、ご助言いただければ
幸いです。(ホスティング業者の誠実な対応は今のところ望めません…)


<サーバ環境の変化>

旧:PHP v.4.3.9 MySQL 4.1.20 (クライアントバージョン)
※サーバ側の旧バージョン名は不明
MySQL の文字セット: UTF-8 Unicode (utf8)
文字セットの照合順序:utf8_general_ci

新:PHP v.5.1.6 MySQL 5.0.27 (クライアントバージョン)
※サーバ側も5.0.27
MySQL の文字セット: UTF-8 Unicode (utf8)
文字セットの照合順序:latin-1_bin
※その後照合順序をujisやutf-8等に変更して見ましたが、だめでした。


<文字化けしたデータのテーブル>
照合順序: utf8_general_ci


<試して見たこと>
MySQLおよびXOOPSのユーザ会のFAQおよびメーリングリスト、Googleでも類似症
例への対処方法を調べて見たのですが、サービスの仕様上手が出せないMySQLと
PHP環境自体の変更以外の方法、具体的には以下の方法を試して見ましたがダメ
でした。

1.phpmyadminで文字セットの照合順序を変更する。
2.XOOPSからDBにアクセスする際の文字セットを指定する。
3..htaccessで表示する文字セットを指定する。
4.他の(正しく日本語が表示できるサイトがある環境)への移植後、
phpmyadminでのデータ表示およびXOOPSでの表示


<ご参考>
同じホスティング業者には別ドメインでもう一件借りていたのですがこちらは
XOOPS側の環境が文字化けサイトと同じでもきちんと表示されました。
phpmyadminでチェックしたところ、やはり(同じホスティングサービスにもかか
わらず)環境が違っていました。

文字化けサイト
MySQL - 5.0.27
phpMyAdmin - 2.8.2.4
MySQL クライアントバージョン: 5.0.27

問題なしサイト
MySQL - 5.0.51a-community
phpMyAdmin - 2.8.2.4
MySQL クライアントバージョン: 4.1.20


何卒よろしくお願い致します。

投稿者 xml-rpc : 2008年4月15日 16:51
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/72167
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。