文字コードを指定してファイルを読む方法
Linuxサーバ上にあるファイルが文字化けしている。文字コード指定することができれば読むことができるのに。。。
Linuxサーバ上でそんな要望をかなえてくれるコマンドをまとめます。
vi を利用する
標準エディタのviでは、文字コードを指定すること可能です。viでファイルを開いて、下記コマンドを入力すると文字コードが変換されます。
:e ++enc=文字コード
ファイルを開くと同時に変換したい場合は次のようにします。
# vi -c ":e ++enc=文字コード" file名
文字コード | 設定値 |
---|---|
Shift-JIS | :e ++enc=cp932 |
UTF-8 | :e ++enc=euc-jp |
EUC-JP | :e ++enc=utf8 |
サンプルコードは下記の通りです。
# Shift-JISの場合 vi -c ":e ++enc=cp932" sample.txt # UTF-8の場合 vi -c ":e ++enc=utf8" sample.txt # EUC-JPの場合 vi -c ":e ++enc=euc-jp" sample.txt
catとnkfを利用する
catを使う場合は、nkfを組み合わせて利用します。
UTF-8のファイルをEUC-JPで読む場合のコマンドは次の通りです。
cat sample.txt|nkf -We
文字コードの指定は、入力と出力の指定をわけて記載します。
文字コード | 入力指定 | 出力指定 |
---|---|---|
Shift-JIS | -S | -s |
UTF-8 | -W | -w |
EUC-JP | -E | -e |
改行コードの指定も可能です。
改行コード | 指定 |
---|---|
LF | -Lu |
CRLF | -Lw |
CR | -Lm |
この記事へのコメントはこちら