文字コードの変換

Linux環境でファイル内容の文字コード変換にはnkfを、ファイル名の変換にはconvmvを使用する。nkfは自動判別や多様なエンコーディングに対応する。convmvはファイル名変換に特化し、実行には--execオプションが必要である。

文字コードの変換は、異なる環境間でファイルをやり取りする際などに必要となる。Ubuntu 24.04 LTSにおいては、nkfconvmvといったコマンドラインツールが標準パッケージとして利用可能であり、文字コード変換によく用いられる。

nkf を使う場合

ファイルの内容の文字コードを変換するには、nkf コマンドが便利である。nkfは統計的な文字コード自動判別機能を持ち、入力文字コードを指定しなくても適切に変換できることが多い。オプションで出力エンコーディングを指定する。UTF-8、Shift_JIS、EUC-JP、ISO-2022-JPだけでなく、UTF-16やUTF-32などの多様な文字コードに対応している。

ファイル変換前に文字コードを確認する場合は nkf --guess ファイル名 コマンドを使用でき、正確な判別が可能である。

コマンドで変換する前にテスト出力を確認したい場合は、リダイレクションを使わずに nkf -w ファイル名 を実行することで、変換結果が標準出力に表示される。

convmv を使う場合

一方、ファイル名の文字コードを変換するには、convmv コマンドを使用する。これはファイルシステム上でのファイル名のエンコーディングを書き換えるツールである。convmvは常にテストモードで動作するため、実際にファイル名を変換するには --exec オプションを明示的に指定する必要がある。

実行前に変換結果を確認し、問題がなければ--execオプションを付けて実行することが推奨される。