[Linux] 文字コードを変換する

  • このエントリーをはてなブックマークに追加
  • LINEで送る
この記事は 2019年3月28日 に書かれたものです

Linux上で文字コードを変換するコマンドといえば、nkficonvの2つ。よく忘れるので備忘録がてらオプションと使い方をメモしておきます。

nkf

実行例1 – 出力する文字コードを指定

入力側の文字コードは自動で判定してくれますので、出力側の文字コードをオプションで指定します。

$ nkf -s foo.txt > foo_sjis.txt
$ cat foo.txt | nkf -s > foo_sjis.txt
- Sponsored Link -

オプション文字コード
-jISO-2022-JP
-sShift_JIS
-eEUC-JP
-w8UTF-8 (BOMあり)
-w80UTF-8 (BOMなし)
-w16UTF-16 BE (BOMあり)
-w16B同上
-w16LUTF-16 LE (BOMあり)

実行例2 – 入力する文字コードも指定

自動判定がうまくいかない場合、オプションで指定することも可能です。出力時のオプションを大文字にしてやるだけです。

$ nkf -E -s foo.txt > foo_sjis.txt
$ cat foo.txt | nkf -E -s > foo_sjis.txt
オプション文字コード
-JISO-2022-JP
-SShift_JIS
-EEUC-JP
-W8UTF-8
-w16UTF-16 BE
-w16B同上
-w16LUTF-16 LE

iconv

実行例

以下でUTF8のファイルを、シフトJISで出力します。

$ iconv -f UTF8 -t SJIS foo.txt > sjis.txt

対応している文字コード

-lオプションで一覧を表示できます。

$ iconv -l

iconv -l | wc -lすると141行ほど返ってきますので、対応している種類で言えばnkfを圧倒しますね。

例えば以下のような文字コードを指定することができます。

  • UTF-8 UTF8
  • UTF-16
  • UTF-16BE
  • UTF-16LE
  • UTF-32
  • UTF-32BE
  • UTF-32LE
  • JISX0201-1976 JIS_X0201 X0201 CSHALFWIDTHKATAKANA
  • EUC-JP EUCJP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE CSEUCPKDFMTJAPANESE
  • MS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJIS
  • ISO-2022-JP CSISO2022JP
  • ISO-2022-JP-1
  • ISO-2022-JP-2 CSISO2022JP2
  • EUC-JISX0213
  • SHIFT_JISX0213

その他

nkfの開発者

余談ですが、nkfはもともと富士通の方が作成されていたんですね。知らんかったw

$ nkf -v    
Network Kanji Filter Version 2.1.4 (2015-12-12) 
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2015, The nkf Project.

関連

コメント

コメント欄は休止中です。お問い合わせはこちらからどうぞ。ご質問はTwitterにリプを投げてください。

このブログを応援する

お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。

PayPal(ペイパル)
PayPalで300円支払う
※金額は任意で変更できます。
※100円でも泣いて喜びますw
※住所の入力欄が現れた場合は「no needed」を選択ください
これまでのご協力者さま
- Sponsored Link -