アウトプットができる技術者に

it's a time to take a new step !

Unix/Linux上でのエンコード/改行コードの変換

1. ファイルの状態を確認する
2. 文字コードを変換する

ファイルの状態を確認する
  • 改行コードの確認

od コマンドで確認できます。vi なら「set ff」

cat hello.txt
--
hello
world

はろー
わーるど

# こうなる
od -c hello.txt
--
0000000   h   e   l   l   o  \r  \n   w   o   r   l   d  \r  \n  \r  \n
0000020 244 317 244 355 241 274  \r  \n 244 357 241 274 244 353 244 311
0000040  \r  \n

ここでは、¥r¥n になってることがわかる。

nkf コマンドで推測してくれる。

nkf --guess hello.txt
EUC-JP (CR)

ちなみに(CR)は改行コード。
(CR)=¥r¥nはwindows系。(LF)=¥rはunix系。

viなら開いて「set fenc」を押す。
開いた時点で文字化けていたら「e ++enc=euc-jp」とか文字コードを指定して開く。
文字コードは適当に当たりを付けてやる。)
正しく開けたら それがファイルの文字コード

文字コードを変換する

iconvでeuc-jp から utf-8 に変換する例

iconv -f euc-jp -t utf-8 hello.txt -o hello.utf8

vi なら 「set fenc=utf-8」して保存すればOK

改行コードの変換

viなら 「set ff=unix」して保存すればOK
¥r¥nにしたい場合は「set ff=dos」。あと「set ff=mac」もある。