文字コード変換
nkfを使用する
機能
- 文字コード判定
- 文字コード変換
- 改行文字変換
- 全角⇔半角変換
- ひらがな⇔カタカナ変換
色々とオプションはあるのだが、よく使うものだけを示す。
USAGE: nkf(nkf32,wnkf,nkf2) -[flags] [in file] .. [out file for -O flag]
変換先コードフラグ | 変換先コード | 説明 |
---|---|---|
-j | JIS 7 bit (DEFAULT) | JISコード(ISO-2022-JP) |
-s | Shift JIS | Shift-JISコード |
-e | EUC-JP | EUCコード |
-w | UTF-8N | UTF-8コード(BOM無し) |
-w -w80 | UTF-8N | UTF-8コード(BOM無し) |
-w8 | UTF-8 | UTF-8コード |
-w16 -w16B0 | UTF16 | UTF16 コード(Big Endian / BOM 無し) |
-w16B | UTF16 | UTF16 コード(Big Endian / BOM 有り) |
-w16L | UTF16 | UTF16 コード(Little Endian / BOM 有り) |
-w16L0 | UTF16 | UTF16 コード(Little Endian / BOM 無し) |
表記上-"ハイフン"を付けた
変換先コードフラグ | 変換先コード | 説明 |
---|---|---|
-J | JIS 7 bit (DEFAULT) | JISコード(ISO-2022-JP) |
-S | Shift JIS | Shift-JISコード |
-E | EUC-JP | EUCコード |
-W | UTF-8N | UTF-8コード(BOM無し) |
改行コードフラグ | 変換先コード | 説明 |
---|---|---|
-Lu | LF | UNIX |
-Lw | CRLF | MS-DOS/Windows |
-Lm | CR | Machintosh |
フラグ | ヘルプ | 説明 |
---|---|---|
-g | Guess the input code | 文字コード自動判別 |
--overwrite | Preserves timestamp of original files | 元ファイルを変換データで上書き(いきなり使用しない方がよい) |
--hiragana | To Hiragana Conversion | ひらがなへ変換(Shift_JISでは注意) |
--katakana | To Katakana Conversion | カタカナへ変換(Shift_JISでは注意) |
例
文字コード判別
nkf -g sample.txt
UTF-8に変更し、上書きする。
nkf -w --overwrite sample.csv
UTF-8且つ改行コードをLFに変更し、上書きする。(ワイルドカードを使用)
nkf -w -Lu --overwrite *.txt
iconvを使用する
対応文字コードを確認する。
iconv --list
変換方法は、
iconv -f 変換元コード -t 変換先コード 変換元ファイル > 変換先ファイル
変換元ファイルと変換先ファイルは別名にすること。
iconvはライブラリとして様々な言語、環境に移植されているが、バージョン?がいくつもあり、それぞれで対応文字コードが異なる。特にMicrosoft Windows上のPerl、Rubyの場合には気をつける。
汎用機用文字コード(EBCDIC:CP939)からUTF-8(unicode)へ変換する場合
iconv -f CP939 -t UTF-8 ebcdic_file.txt > utf8_file.txt
上記文字コードリストは、非常に多くの文字コードをリストアップしているが、一般的には規格制定変更により現実にはほとんど使用されていないものやエイリアスも多数ある(SHIFT_JISX0213等)ので注意が必要。
主なものとして
日本語 EUC | UJIS |
シフトJIS | SJIS |
JIS | ISO-2022-JP |
UNICODE | UTF8 |
EBCDIC | CP939 |
ただし、各文字コードには、拡張版等が多数存在するために対象のデータ内容の確認が必要である。特に汎用機(ホスト)系の文字コードはメーカー別で様々であり、英数字・カナでも異なるため、EBCDICだけでは表現しきれない。詳しくはここを参照のこと。
その他のコード変換ツールとして
dd、nkf等がある。