Windowsで作ったテキストファイルをUbuntuで読み込む
Windows(DOS)で作ったテキストファイルをUbuntuにコピーして、catコマンドで表示すると、文字化けしてしまう。文字コードの変換と改行コードの変換が必要だ。Windowsの文字コードは一般的にはShift-JISだが、①(丸の中に1)のような機種依存文字を扱えるようにするため、文字コードはcp932を指定する。Ubuntuの文字コードはutf-8となる。
iconvで文字コードを変換した後、パイプでfromdosコマンドへ渡して、出力ファイルへリダイレクトすれば良い。
$ iconv -f cp932 dosfile.txt | fromdos > dosfile.txt.utf8
iconv
文字コードを変換する
$ iconv -f SHIFT-JIS -t UTF-8 dosfile.txt $ iconv -f encoding [-t encoding] [inputfile]... -f は変換しようとしているファイルのエンコーディングを指定する。 -t はlocaleに指定されたエンコーディングとなるので省略可能できる。 -o outfile とすると出力ファイル(outfile)の名前を指定できる。 -l 変換できるエンコード一覧が出力される。
fromdos
DOSフォーマットからUNIXフォーマットに変換する。CR,LF → LF
DOSフォーマットの改行はキャリッジリターンとラインフィードのペアになっているが、UNIXフォーマットはラインフィードだけになる。
$ fromdos dosfile.txt $ fromdos -b dosfile.txt -b は変換されるファイルのバックアップを作る。
todos
UNIXフォーマットからDOSフォーマットに変換する。LF → CR,LF
$ todos unixfile.txt
fromdos, todosはUbuntu 10.04 LTSをインストールした状態ではコマンドが使えなかったのでインストールした。
$ sudo apt-get install tofrodos