文字コードを指定してファイルを読む方法

 

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
  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。