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

  • このエントリーをはてなブックマークに追加
  • LINEで送る

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.

関連

[Linux] 文字コードを調べる

- Sponsored Link -

ご質問やリクエストなどお気軽に。メールアドレスの入力は任意です。書き込みが反映されるまで時間がかかります。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください