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