当ブログの文字コードはずっと EUC-JP でした。
さかのぼること数年、このブログを始める際、確か Movable Type のバージョンは 2.5x。日本語版というものは存在せず、日本語化するには Movable Type Japanese Language Pack [dh memoranda] が必要。そしてその為には文字コードを UTF-8 か EUC-JP にする必要がありました。当初 Shift_JIS でブログを開始した僕は、エントリーが数件だったのを良いことに、文字コードを変更することを決意。当時まだ世間一般では馴染みの無かった UTF-8 ではなく、 EUC-JP を選択したのでした。思えば、あれがはじめての Import/Export、エントリー ID が振り直される為、permalink が変更になってしまうケースがあることもこの時知りました。
とまぁ、そんな感じでずっとお付き合いしてきた EUC-JP ですが、UTF-8 が市民権を勝ち得てずいぶんと経ちましたし、携帯電話も最新機種では当たり前のように UTF-8 に対応しているようだし、 Perl も普通に UTF-8 を扱うし、そろそろ UTF-8 に文字コード変更するべきかなと思っていました。ただ、SQLite 上の文字コードをどうやってコンバートすれば良いのか調べるのも億劫だし、トライ&エラー繰り返す暇もないし、面倒で放置し続けてきました。
が、たまたま MT4 関連のブログ記事を漁っていたところ、ドンピシャの記事を発見したわけです。
と、以上長々と前置きでした。
見つけたのは以下の記事。
sqliteのdbの文字コードを変換する (Yusukebe::Tech)より。
ということでsqliteのdbファイル内データの文字コードを変換するのは以下でいけます。
はい、ということで MT ホーム/db ディレクトリに移動して、下記を実行。
$ echo '.dump' | sqlite3 mt.db | nkf -w > dump.txt
$ sqlite3 mt_utf8.db < dump.txt
すると、
SQL error near line 76: unrecognized token: "25・blog・ ・ 鏆"
≦с?? 荅宴・
なんてなエラーが出ましたが、気にしないことに。どっか文字化けとかしてるかもしれませんけど、とりあえず動くようなのでいいやと。であとは、mt-config.cgi を編集です。
- Database db/mt.db
+ Database db/mt_utf8.db- PublishCharset euc-jp
+ PublishCharset utf8
上記変更して保存したら、ブログをフルリビルド(全再構築)して完了。
文字コード指定して貼り付けているような JavaScript Include が文字化けしていたので、そのあたりも一通り変更しました。
さて、これでいつでも MT4 に移行できますよ。いつになることやらですけど。
コメント