MySQL4.1でlatin1なテーブルに格納された日本語データのサルベージ

全回のRails勉強会で相談したネタですが、以前作成したDBでlatin1のテーブルにEUC-JPの日本語を格納してしまい、ダンプツールなどでうまく読み出せなくなってしまっていました。*1
とりあえずRailsからはbinaryで読みだし、日本語として表示できていました。でも、やっぱりUTF-8のほうが楽だよね、ということでMySQL5.0+UTF-8のテーブルに移行するため、データをダンプした際にこの過去のミスがもとでハマった、と。

Rails勉強会の場では「ActiveRecord経由で読み出せば救えるんじゃない?」というアドバイスをいただきまして、その結果うまく救出できたのでまとめをば。

*1:我ながらなんでlatin1のまま日本語を入れるなどという暴挙に出たのか不明ですが

続きを読む