文字コード関連
ファイル名の文字コード変換
以前は Linux の日本語環境では EUC-JP, Shift_JIS 等でファイル名をエンコードしていたが、近年は UTF-8 への移行が完了しつつある。そこで、以前から使ってきた環境の Shift_JIS ファイル名を UTF-8 に変換したい。
なお、DOS, Windows 9x 環境で使われていたファイル名の文字コードは正確には SJIS ではなく、拡張された CP932 になっている。「~」等の文字の変換結果が Shift_JIS と異なっていたり1、Shift_JIS にない文字 (①等) が含まれていたりするので、ファイル名を変換する際は CP932 から UTF-8 へ変換する。
変換には convmv を使う。Debian 系では apt-get でインストールできる。
ディレクトリとその中のファイル名を再帰的に全て変換するにはまず以下のようにする。
$ convmv -f cp932 -t utf8 -r ディレクトリ
これで実行内容だけ出力して、実際には何もせずに終了する。特に問題なければ、上記に --notest を付けて実行すれば実際に変換が行われる。
WinSCP 等でファイル操作する際はファイル名を UTF-8 として解釈するようにする。(デフォルト)
デフォルトに戻すには、接続先設定の Advanced > Environment > UTF-8 encoding for filenames を Auto に。