スキャン本舗から送られてきた PDF ファイルは、ファイル名が丁寧にも本の題名になっていた。問題はその文字コードが Shift_JIS だったこと。Mac だと問題ないけど、Ubuntu Linux では激しく文字化けする。特に CUI で扱う場合は不便 (本当は英数字だけが理想なのだけど)。そこで、ファイル名の文字コードを変換するスクリプトを探したところ、convmv という Perl スクリプトを見つけた。
インストール
本家ページから最新版 (1.14) をダウンロードする。あとは展開して PATH の通った所に置くだけ。
$ tar xzvf convmv-1.14.tar.gz $ cd convmv-1.14 $ make pod2man --section 1 --center=" " convmv | gzip > convmv.1.gz $ sudo make install pod2man --section 1 --center=" " convmv | gzip > convmv.1.gz mkdir -p /usr/local/share/man/man1/ mkdir -p /usr/local/bin/ cp convmv.1.gz /usr/local/share/man/man1/ install -m 755 convmv /usr/local/bin/
使い方
使い方は man ページか前述の解説ページが詳しい。
でも、全部他人任せもアレなので、一応自分で解説も書いおく。
今回のやうに Shift_JIS なファイル名を utf-8 に変換する場合のコード。
$ convmv -f sjis -t utf8 *
ファイル名の変換は危険な行為なので、実はこれだけではファイル名の変換は行なわれない。上記コマンドを実行すると、変換元のファイル名(文字化け)と変換後のファイル名が表示される。それを見て、ファイル名変換に問題がないことを確認しやう。OK なら、次のオプションを追加してコマンドを実行する。
$ convmv -f sjis -t utf8 * --notest
落ち穂拾い
- EUC-JP を指定する時は euc を使う
- 再帰的に処理を行なう場合は -r オプションを付ける
- 元ファイルの文字コードが分からない場合は kcc -c filename とする。kcc はデフォールトでインストールされていない。使う場合は sudo apt-get install kcc でインストールすること
No comments:
Post a Comment