LoginSignup
41
38

More than 5 years have passed since last update.

nkfで文字コード変換したいときはこうする!!

Last updated at Posted at 2016-03-17

CUI上で文字コードを変換するときにかなりお世話になるのがlvとnkfですね(自分は、ですけど
たまに、やり方を忘れるので、覚え書きを作りました、参考になれば
ちなみにCentOS 6.xのターミナル上で実行しているので、環境によっては使えないオプションもあるかも知れません

  • インストール

yumの場合

yum install lv nkf

aptの場合

apt-get install lv nkf
  • よく使うオプション
オプション一覧
-j(省略可能) : JISコード(ISO-2022-JP)を出力
-b           : バッファリング出力を行う。(デフォルト)
-u           : 出力時に、バッファリングしない
-e           : EUCコードを出力
-s           : Shift-JISコードを出力
-w           : UTF-8コードを出力(BOM無し)
-w8          : UTF8 コードを出力する。
-w16 -w16B0  : UTF16 コードを出力する。 (Big Endian / BOM 無し)
-w16B        : UTF16 コードを出力する。 (Big Endian / BOM 有り)
-w16L        : UTF16 コードを出力する。 (Little Endian / BOM 有り)
-w16L0       : UTF16 コードを出力する。 (Little Endian / BOM 無し)
-mB          : MIME base64 stream を解読する。ISO-2022-JP (B encode)
-mQ          : MIME quoted stream を解読する。ISO-8859-1 (Q encode)
-mS          : MIME のチェックを厳しくする (デフォルト)
-mN          : MIME のチェックを緩くする。改行で切られた MIME なども解読する。
-m0          : MIME を解読しない。
-mS          : 宣言の内容と、その後に続く encoded-text の整合性をチェックする。
-M           : MIME に変換する。ヘッダ形式に変換する
-MB          : MIME に変換する。base64 stream に変換する
-MQ          : MIME に変換する。Quoted stream に変換する
-g           : 自動判別の結果を表示
-x           : 半角カナを維持する
-X           : 半角カナを全角カナに変換する
-B           : JISコード(エスケープ無し)
-B1          : エスケープを問わない
-B2          : 改行後強制的にASCIIにする
-f[m[-n]]    : 一行 m 文字になるように、マージンを n として簡単な整形をおこなう。
-Z0          : Convert X0208 alphabet to ASCII.
-Z1          : JIS X 0208 和字間隔を ASCII space 一つに変換する。
-Z2          : JIS X 0208 和字間隔を ASCII space 二つに変換する。
-Z3          : >、<、”、&、を >、<、"、& に変換する。
-I           : ISO-2022-JP 以外の漢字コードを〓に変換。
-i[@B]       : JIS 漢字を指示するシーケンスを指定する。 (デフォルトは、ESC-$-B)
-o[BJH]      : 1 バイト英数文字セットを指示するシーケンスを指定する。 (デフォルトは、ESC-(-B)
-r           : ROT13/47 の変換をする。
-Lu          : unix改行形式(LF)に変換
-Lw          : windows改行形式(CRLF)に変換
-Lm          : macintosh改行形式(CR)に変換
--overwrite  : 引数のファイルに直接上書き
--version    : バージョン情報を表示

他にも文字コードを指定したりする-icとかありますが、あまり使わないので割愛w

よく使う使い方

  • SJISからUTF-8にする、ついでに改行もCR+LFからLFに
nkf -Lu -w --overwrite sample.txt
#パイプで使うなら
ls -al | nkf -Lu -w > sample.txt
  • UTF-8 からSJISにする、ついでに改行もCR+LFにする
nkf -Lw -s --overwrite sample.txt
#パイプで使うなら
ls -al | nkf -Lw -s > sample.txt
  • メールで使われるiso-2022-jpにする
nkf -j --overwrite sample.txt
#パイプで使うなら
ls -al | nkf -j > sample.txt
41
38
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
38