« September 2005 | Main | January 2006 »

ある日突然blogが文字化け

僕は公式サイトを海外のレンタルサーバに置いているのだが、そこがMySQLを4.1.15にアップグレードし、データをバックアップ→レストアしたらしい。ある日突然blogがえらい文字化けだらけになってしまった。
最初は事情がつかめないまま、サポートに連絡し、状況を伝えたのだが、データベースとクライアントプログラムの文字コードを合わせてみてという類のアドバイスしかもらえない。ネットで色々調べて、MySQL4.0と4.1以降での文字コードの扱いが原因で色々トラブルが起こっていることを知ったので、Movable Typeのスクリプトをいじってみたりしたのだが、文字化けは解消しない。データベースの設定をphpMyAdminからいじって、参照順をLatin1からutf8に変えても解消しない。というか、部分的には日本語が残っていたものがすべてラテン文字に変換されて表示されるようになってしまった。

らちがあかないので、ダンプした古いデータベースのバックアップをくれるように交渉し、入手できたのだが、どうやらダンプした段階で化け化けになっているようだ。Latin1の設定のデータベースにutf8を突っ込んだものをダンプする際は、
sqldump --default-character-set=latin1
のようにオプションを指定してやることで、コード変換されずにデータを得ることが出来るということが検索でわかったので、これをサポートに伝え、あらためてダンプデータを送ってもらう。

結果、正常にutf8で日本語の記事が含まれたデータが入手できたので、データ内で Latin1と指定されている部分をutf8に置換。phpMyAdminから読み込ませて、やっとのことで復旧できた。

こういうとき、海外の会社との交渉は大変だなあ。

| | Comments (6) | TrackBack (1)

« September 2005 | Main | January 2006 »