EUCからUTF-8へ、ファイル名の文字コード変換

サーバを Red Hat Linux 9 から Fedora Core 3 に交換するに当たり、 一番悩んだのが文字コードが変更になってしまうこと。 RHL9 は EUC で FC3 は UTF-8 になります。 MySQL のダンプデータはテキスト形式なので、 RHL9 上からエクスポートしたものは nkf なり iconv なりでコード変換してしまえばよかったのですが、 困っていたのが大量の MP3 などです。 これが思いっきり日本語のファイル名になってるのです。 RHL9 で使っていたディスクをそのまま FC3 につなべれば問題なくマウントはできますが、 日本語を使ったファイル名はもちろん文字化けしてしまい、 何がなんだかわかりません。 はて、 どうしたものか。 とりあえず今は旧サーバ(RHL9)と新サーバ(FC3)が両方動いている状態なので、なんとかうまい具合に移行したいものです。
一番最初に試したのが、 samba のコード変換機能を使うこと。
RHL9 上で samba を使って共有した後、 FC3 のほうからは smbfs としてマウントする方法。
# smbmount //servername/sharename /mnt -o codepage=cp932,iocharset=utf8
とやることでマウントでき、 ファイル名も文字化けせずコピーできました。
ところがコピーしてしばらくすると転送元サーバがダウンしてしまうのです。 何が悪いのか判らないので別の方法を試してみます。
次に試したのが、 proftpd にパッチを当てる方法。
詳しくは 「こちら」を見てください。 クライアントに送るファイル名を指定の文字コードに変更できる優れものです。 proftpd.conf に以下の2行を追加すれば、 FC3 にインストールした gFTP からもちゃんと日本語表示できました。
CharsetLocal   EUC-JP
CharsetRemote  UTF-8

これで全ファイルを FTP しちゃえばいいかなと思ったんですが、 これまた途中で転送元サーバがこけちゃいます。 どうやら kernel がパニクってるみたい。 転送元のディスクは外付けディスクで USB 接続しているのですが、 SCSI emulation しているところがおかしくなってるみたい。 これは痛い。 はて、 どうしましょ。
どっちにしても後者の proftpd にパッチを当てるのはよいかもしれません。 FFFTP ではまだ UTF-8 をサポートしていないはずなので、FC3 で動かす proftpd は、
CharsetLocal   UTF-8
CharsetRemote  SJIS

としてあげればファイル名が SJIS で読めるので、FFFTP でも無事使えそうです。

関連した記事:

投稿時刻: 2:45 PM | カテゴリー: Linux | パーマリンク

EUCからUTF-8へ、ファイル名の文字コード変換” への1件のコメント

  1. 最新の FFFTP では、皆さんご存じの通り、 UTF-8 がサポートされてます。
    おかげでサーバー側で細工することなく、日本語ファイル名のやりとりができるようになりました。
    よい時代になったものです(笑)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です