Cygwin 3.5.7 の標準インストーラでインストール可能な日本語文字コードを扱える文字エンコード変換ソフトのパッケージについて。
ただし、ソースからコンパイルしてインストールすることは可能。
$ tar xzf nkf-2.1.5.tar.gz
$ cd nkf-2_1_5/
$ make
cc -g -O2 -Wall -pedantic -c nkf.c
cc -g -O2 -Wall -pedantic -c utf8tbl.c
cc -g -O2 -Wall -pedantic -o nkf nkf.o utf8tbl.o
$ make install
mkdir /usr/local/bin
mkdir: ディレクトリ `/usr/local/bin' を作成できません: File exists
make: [Makefile:49: install-main] エラー 1 (無視されました)
cp -f nkf /usr/local/bin/
mkdir /usr/local/man
mkdir /usr/local/man/man1
cp -f nkf.1 /usr/local/man/man1/
mkdir /usr/local/man/ja
mkdir /usr/local/man/ja/man1
cp -f nkf.1j /usr/local/man/ja/man1/nkf.1
$ nkf
$ nkf --help
Usage: nkf -[flags] [--] [in file] .. [out file for -O flag]
j/s/e/w Specify output encoding ISO-2022-JP, Shift_JIS, EUC-JP
UTF options is -w[8[0],{16,32}[{B,L}[0]]]
J/S/E/W Specify input encoding ISO-2022-JP, Shift_JIS, EUC-JP
UTF option is -W[8,[16,32][B,L]]
m[BQSN0] MIME decode [B:base64,Q:quoted,S:strict,N:nonstrict,0:no decode]
M[BQ] MIME encode [B:base64 Q:quoted]
f/F Folding: -f60 or -f or -f60-10 (fold margin 10) F preserve nl
Z[0-4] Default/0: Convert JISX0208 Alphabet to ASCII
1: Kankaku to one space 2: to two spaces 3: HTML Entity
4: JISX0208 Katakana to JISX0201 Katakana
X,x Convert Halfwidth Katakana to Fullwidth or preserve it
O Output to File (DEFAULT 'nkf.out')
L[uwm] Line mode u:LF w:CRLF m:CR (DEFAULT noconversion)
--ic=<encoding> Specify the input encoding
--oc=<encoding> Specify the output encoding
--hiragana --katakana Hiragana/Katakana Conversion
--katakana-hiragana Converts each other
--{cap, url}-input Convert hex after ':' or '%'
--numchar-input Convert Unicode Character Reference
--fb-{skip, html, xml, perl, java, subchar}
Specify unassigned character's replacement
--in-place[=SUF] Overwrite original files
--overwrite[=SUF] Preserve timestamp of original files
-g --guess Guess the input code
-v --version Print the version
--help/-V Print this help / configuration
Network Kanji Filter Version 2.1.5 (2018-12-15)
Copyright (C) 1987, FUJITSU LTD. (I.Ichikawa).
Copyright (C) 1996-2018, The nkf Project.
$
ビューアーだが、変換プログラムとしても使用できる。
例
$ cat file | lv -Os | cat
指定できる文字コード
coding-system:
a: auto-select
c: iso-2022-cn
j: iso-2022-jp
k: iso-2022-kr
ec: euc-china
ej: euc-japan
ek: euc-korea
et: euc-taiwan
u7: UTF-7
u8: UTF-8
l1..9: iso-8859-1..9
l0: iso-8859-10
lb,ld,le,lf,lg: iso-8859-11,13,14,15,16
s: shift-jis
b: big5
h: HZ
r: raw mode
libiconv2 パッケージではダメ。
libiconv を入れること。GNU libiconv 実装の iconv コマンドが使えるようになる。
$ iconv -l | egrep -i 'jis|2022-?jp|20932' | egrep -vi 'sjis|shift|euc'
ISO-IR-14 ISO646-JP JIS_C6220-1969-RO JP CSISO14JISC6220RO
JIS0201 JISX0201-1976 JISX0201.1976-0 JIS_X0201 X0201 CSHALFWIDTHKATAKANA
ISO-IR-87 JIS0208 JISX0208.1983-0 JISX0208.1990-0 JIS_C6226-1983 JIS_X0208 JIS_X0208-1983 JIS_X0208-1990 X0208 CSISO87JISX0208
ISO-IR-159 JIS0212 JISX0212.1990-0 JIS_X0212 JIS_X0212-1990 JIS_X0212.1990-0 X0212 CSISO159JISX02121990
ISO-2022-JP ISO2022JP CSISO2022JP
ISO-2022-JP-1
ISO-2022-JP-2 CSISO2022JP2
CP50221 ISO-2022-JP-ESC ISO-2022-JP-MS
ISO-2022-JP-2004 ISO-2022-JP-3
$
$ iconv -l | egrep -i 'euc' | egrep -i 'jp|jis'
CP51932 EUC-JP EUCJP EUC_JP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE CSEUCPKDFMTJAPANESE
EUC-JIS-2004 EUC-JISX0213
$
$ iconv -l | egrep -i 'sjis|shift|932|31j' | grep -v 51932
MS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJIS
CP932 WINDOWS-31J
SHIFT_JIS-2004 SHIFT_JISX0213
$
perl に付属の iconv コマンド。
$ piconv -l | grep -i jis | egrep -iv 'shift|sjis'
7bit-jis
jis0201-raw
jis0208-raw
jis0212-raw
$
$ piconv -l | egrep -i 'jis|31j|932' | egrep -i 'shift|sjis'
shiftjis
$
$ piconv -l | egrep -i 'euc' | egrep -v -e '[-_](cn|tw|kr)'
euc-jp
$