ようへいの日々精進XP

よかろうもん

文字コードの確認やら改行コードの変換やら

はじめに

  • テキストファイルの文字コードを確認するコマンドとか
  • 改行コードの変換するコマンドとか

文字コードは何ですか?

いくつか方法があると思うが nkf を使う。${textfile}文字コードを確認する。

nkf --guess ${textfile}

出力結果は下記のようになる。

user@tpX1-Carbon:~/tmp$ nkf --guess shift_jis.txt
Shift_JIS (LF)
user@tpX1-Carbon:~/tmp$ nkf --guess euc_jp.txt
EUC-JP (LF)
user@tpX1-Carbon:~/tmp$ nkf --guess utf_8.txt
UTF-8 (LF)
user@tpX1-Carbon:~/tmp$

合わせて改行コード(LF)も表示されているので嬉しい。


改行コードを変えましょう

上記の例では Ubuntu 上の gedit で作成したファイルをそれぞれの文字コードで保存したファイルを確認したが、改行コードは特に弄ることなくタイプは LF で保存した。

業務でよくあるのが Windows 環境で作成した Excel ファイルを csv 形式で渡されたて改行コードが CRLF になってしまっている状況。そんな時には dos2unix を使って CRLFLF に変換してしおう。

変換前

以下のように CRLF の状態のテキストファイル。

user@tpX1-Carbon:~/tmp$ nkf --guess shift_jis.txt
Shift_JIS (CRLF)

変換後

以下のように dos2unixCRLF から LF に変換する。

user@tpX1-Carbon:~/tmp$ dos2unix shift_jis.txt
dos2unix: converting file shift_jis.txt to Unix format ...

変換後、確認する。

user@tpX1-Carbon:~/tmp$ nkf --guess shift_jis.txt
Shift_JIS (LF)

LF に変換されている。


最後に

他にもやり方が有りそうなので教えて下さい。