SKF(1) General Commands Manual SKF(1)
NAME
skf - シンプル漢字フィルタ(v2.10)
SYNOPSIS
skf [Options] [拡張オプション] [infiles..]
DESCRIPTION
skf は、ネットワークでメールやニュースの読み書き、SGML 文書の加工をするために作られた
i18n を指向した漢字コードの変換フィルタである。特に skf は受信を重視、すなわちさまざま
な文字コードを用いて記述されたテキストを、 日本語が読める環境で可読な形式に変換すること
を目的として作成されており、 逆に文字コード外のエンコーディング等については最小限の機能
しか実装していない。
nkf 同様 skf は入力に X 0201 かな部が含まれていないという前提の元に、 日本語入力コード
を完全ではないが自動認識する。 skf が「自動」認識できる入力のコード系は,7 ビットおよび
8 ビット JIS (X 0201(ESC-(-I) を含む), X 0208, X 0212, X 0213)、マイクロソフトコード
ページ (いわゆるシフトJIS を含む), EUC (日本語, 韓国語, 中国語伝統字, 中国語簡体字),
ASCII, ISO-646(1973), BS 4730(UK), DIN 66-003, NF Z 62-010(仏),
ISO-8859-1/2/3/4/5/6/7/8/9/10/11/14/15/16, ECMA-113-Cyrillic などである。 入力に明示指
定することによって、更に Unicode 標準転送形式 (UTF-16, UTF-8, UTF-7), KOI-8-R, KOI-8-U,
Big5 (大五碼), GB2312 (HZ), KEIS83/90, JEF, VISCII(rfc1456. VIQR も可) ほかが扱えるほ
か、 MIME/CAP/ACE/URI 文字参照のデコード機能や、Unicode 正規分解機能も持っている。 8bit
系の X 0201 かな部は入力として明示指定されれば動作する。
出力できる漢字コード系は, 7ビット/8ビットJIS (JIS X 0208, X 0212, X 0213), 一部のマイク
ロソフトコードページ, EUC-JP, EUC-KR, EUC-CN, Big5, ISO-8859, Unicode などである。ま
た、X 0201 かな出力が可能であり、JIS 7 単位系のロッキングシフト、EUC G2 へのシングルシ
フト、 JIS 8単位系、ESC-(-I をサポートしている。 また、JIS X 0212 補助漢字の出力が JIS,
EUC-JP, Unicode 出力指定時可能である。
また、skf は言語の機能拡張として、 いくつかの言語のプラグインとして動作するようコンパイ
ルすることも可能である。 これらについての詳細は、添付文書を参照のこと。
上記のとおり、 skf は入力を「可読」にすることを目的としており、元となった nkf とは異な
り対象となるシステムにあわせた積極的なコードの修正、 あるいは改変をを行っている。このよ
うな修正には、例えば JIS X 0208:1997 の追加文字の可読修正、各社外字のゲタ/文字変換、
リガチャの展開、罫線素片の英字記号化、HTML実体表現への変換などの処理を含む。
入力は、ファイルを指定しなければ、標準入力となる。出力は --in-place または
--overwrite 指定時以外は標準出力である。 入力ファイルは複数個指定する事ができる。オプ
ションは、環境変数 SKFENV、skfenv、コマンドライン指定、の順に読まれ、上書きされ る
(root で実行時は環境変数は読まない。また、Ruby や Perl の機能拡張はこれらの環境変数を読
まない)。コード指定に Locale は見ていないが、標準エラー出力に吐かれるエラーについては
Locale 指定に従う (Locale 機能のある OS のみ。Ruby 等の機能拡張でも有効)。
オプション
skf は新規に書き起こしたもので、内部的には全く nkf とは異なるが、nkf 互換を意図してお
り、主なオプションは nkf(1.4) 互換に作られている。 指定できるオプションは、以下の通り。
拡張オプションは、必ずしも他の各種日本語プログラムで扱えるコードを出力しない場合がある
ので、 何をしているのかよく理解して利用のこと。 スイッチ、警告などはデフォルトはすべて
切である。
バッファ制御
-b バッファリング出力を行う (デフォルト)。
-u 出力時に,バッファリングしない。文字認識能力は低下する。
入出力コード・コードセット指定
--ic= 入力コードセット
入力のコードセットが指定の入力コードセットであることを指定する。取り得るコード
セットは以下に示す。
--oc= 出力コードセット
出力のコードセットが指定の出力コードセットであることを指定する。取り得るコード
は以下に示す。 指定しない場合の標準値は、コンパイル指定に依存する。-h オプシ
ョンを指定することにより既定値を出力するので確認されたい。
サポートコードセット
サポートされているコードセットを以下に示す。コードセット名では大文字小文字の違いは無視
される。 自分の環境でサポートされているコードセットは --show-supported-codeset で得るこ
とができる。 また、IANA 登録の iso-2022 互換のコードセットは自動認識されるため、明示指
定が無視される場合がある。 以下、in は入力/out は出力として、o はサポートされていること
を、x はサポートされていないことを意味する。
in out name description
o o iso8859-1 ascii + iso-8859-1 (latin-1)
o o iso8859-2 ascii + iso-8859-2 (latin-2)
o o iso8859-3 ascii + iso-8859-3 (latin-3)
o o iso8859-4 ascii + iso-8859-4 (latin-4)
o o iso8859-5 ascii + iso-8859-5 (Cyrillic)
o o iso8859-6 ascii + iso-8859-6 (Arabic)
o o iso8859-7 ascii + iso-8859-7 (Greek)
o o iso8859-8 ascii + iso-8859-8 (Hebrew)
o o iso8859-9 ascii + iso-8859-9 (latin-5)
o o iso8859-10 ascii + iso-8859-10 (latin-6)
o o iso8859-11 ascii + iso-8859-11 (Thai)
o o iso8859-13 ascii + iso-8859-13 (Baltic Rim)
o o iso8859-14 ascii + iso-8859-14 (Celtic)
o o iso8859-15 ascii + iso-8859-15 (Latin-9)
o o iso8859-16 ascii + iso-8859-16
o o koi-8r koi-8r (Russian)
o o cp1251 Cyrillic latin MS cp1251
o o jis iso-2022-jp (rfc1496 7bit JIS)
o o iso-2022-jp-x0213 iso-2022-jp-3 (JIS X 0213:2000).
a.k.a. jis X 0213
o o jis-x0213-strict iso-2022-jp-3-strict
o o iso-2022-jp-2004 iso-2022-jp-2004(JIS X 0213:2004/2012)
a.k.a. jis-x0213-2004
o o oldjis iso-2022-jp (JIS X 0208:1978 いわゆる旧 JIS)
o o euc-jp EUC エンコード JIS X 0208:1997 日本語
o o euc-x0213 EUC エンコード JIS X 0213:2000
o o euc-jis-2004 EUC エンコード JIS X 0213:2004
o o euc-kr EUC エンコード KS X 1001 韓国語
o o euc7-kr 7bitEUC エンコード KS X 1001 韓国語
o o uhc Windows 統合ハングルコード (Windows cp949)
o o johab KS X 1001-johab 韓国語
o o euc-cn EUC エンコード簡体字中国語
o o euc7-cn 7bitEUC エンコード簡体字中国語
o o hz HZ エンコード簡体字中国語
o o euc-tw EUC エンコード CNS11643 伝統字中国語
o o gb12345 EUC エンコード GB12345 伝統字中国語
o o gbk GBK エンコード簡体字中国語
o o gb18030 GB18030 エンコード簡体字中国語
o o big5 BIG5 (倚天方式, Euro つき)
o o big5-cp950 BIG5 (Microsoft cp950, Euro つき)
o o big5-hkscs BIG5 with HKSCS
o o big5-2003 BIG5-2003
o o big5-uao BIG5 Unicode 補完計画拡張コード
o o sjis Shiftjis (IBM cp943)
o o shiftjis-x0213 Shiftjis-エンコード JIS X 0213:2000
o o shiftjis-2004 Shiftjis-エンコード JIS X 0213:2004
o x sjis-cellular Shiftjis-エンコード JIS X 0208:1997
NTT Docomo, Vodafone 携帯絵文字対応
o o cp932 Shift-jis-エンコード MS cp932
o o cp932w Shift-jis-encoded MS cp932 (Windows 互換)
o o cp50220 Microsoft codepage 50220
o o cp50221 Microsoft codepage 50221
o o cp50222 Microsoft codepage 50222
o o cp51932 Microsoft codepage 51932 (EUC 類似)
o o oldsjis Shift-jis (JIS X 0208:1978 文字集合)
o o viscii VISCII (rfc1456) ベトナム語
o o viqr VISCII (VIQR-rfc1456) ベトナム語
o o keis 日立 KEIS83/90
o x jef 富士通 JEF (基本コードのみ)
o x ibm930 IBM EBCDIC DBCS 日本語
o x ibm931 IBM EBCDIC DBCS ラテン文字日本語
o x ibm933 IBM EBCDIC DBCS 韓国語
o x ibm935 IBM EBCDIC DBCS 簡体字中国語
o x ibm937 IBM EBCDIC DBCS 伝統字中国語
o o unicode Unicode(TM) UCS-2/UTF-16(LE)
o o utf7 Unicode(TM) UTF-7
o o utf8 Unicode(TM) UTF-8
x o nyukan-utf-8 日本国入管文字集合(UTF-8)
x o nyukan-utf-16 日本国入管文字集合(UTF-16)
o x arib-b24 ARIB B24 8単位符号
o x arib-b24-sjis ARIB B24 シフト符号化表現
o x transparent 透過モード (下記参照)
コードセット詳細
iso-8859-*
G0 = GL は ascii、G1 = GR は iso-8859-* となる。出力時、指定により G1 に
iso-8859-* をセットするシーケンスが出力され、8bit エンコーディングとなる。
jis, iso-2022-jp
iso-2022-jp-2 エンコーディングで、JIS X 0208:1997 コードを出力する。 G0 = GL は
JIS X 0201 Roman、 G1 は JIS X 0201 かな、G2 は iso-8859-1、G3 は X 0212 補助漢
字となる。
jis-x0213, iso-2022-jp-3, iso-2022-jp-2000
iso-2022-jp-3 エンコーディングである。入力では自動判定される。 出力時、G0 = GL
は JIS X 0201 Roman、 G1 は JIS X 0201 かな、G2 は iso-8859-1、G3 は X 0213:2000
第二面となる。
jis-x0213-strict
iso-2022-jp-3-strict エンコーディングであり、X 0208 範囲の文字は X 0208 として出
力される。入力では自動判定される。 出力時、G0 = GL は JIS X 0201 Roman、 G1 は
JIS X 0201 かな、G2 は iso-8859-1、G3 は X 0213:2000 第二面となる。
jis-x0213-2004, iso-2022-jp-2004
iso-2022-jp-3(2004) の十文字追加対応。Unicode 文字対応は変更していない。 出力
時、G0 = GL は JIS X 0201 Roman、 G1 は JIS X 0201 かな、G2 は iso-8859-1、G3 は
X 0213:2004 第二面となる。
oldjis
iso-2022-jp エンコーディングの、JIS X 0208:1978 (いわゆる旧 JIS) である。 入力で
は --input-detect-jis78 指定時のみ自動判定される。G0 = GL は JIS X 0201
Roman、G1 は JIS X 0201 かな、G2 は iso-8859-1、G3 は X 0212 補助漢字となる。
euc-jp, euc
EUC エンコーディングで、JIS X 0208:1997 コードである。 G0 = GL は ASCII、G1 は
JIS X 0208、 G2 は JIS X 0201 かな、G3 は X 0212 補助漢字となる。
euc-x0213, euc-jis-2000
EUC エンコーディングで、JIS X 0213:2000 コードである。 G0 = GL は ASCII、G1 は
JIS X 0213:2000 第一面 G2 は JIS X 0201 かな、G3 は X 0213 第二面となる。
euc-jis-2004
EUC エンコーディングで、JIS X 0213:2004 コードである。 十文字追加対応。Unicode
文字対応は変更せず。G0 = GL は ASCII、G1 は JIS X 0213:2004 第一面、G2 は JIS X
0201 かな、G3 は X 0213 第二面となる。
euc-kr
EUC エンコーディングで韓国語 KS X 1001 コードである。 G0 = GL は KS X1003、G1 =
GR は KS X1001、G2 と G3 は未設定である。
euc7-kr iso-2022-kr
7bit EUC エンコーディングで韓国語 KS X 1001 コードである。iso-2022-kr (rfc1557)
準拠。 G0 = GL は KS X1003、G1 は KS X1001、G2 と G3 は未設定である。
euc-cn
EUC エンコーディングで簡体字中国語 GB 2312 コードである。 G0 = GL は ASCII、G1 =
GR は GB2312、G2 と G3 は未設定である。
euc7-cn
7bit EUC エンコーディングで簡体字中国語 GB 2312 コードである。 G0 = GL は
ASCII、G1 は GB2312、G2 と G3 は未設定である。
hz
HZ エンコーディングを用いた簡体字中国語 GB 2312 コードである。 G0 = GL は
ASCII、G1 = GR は GB2312、G2 と G3 は未設定である。
gb12345
EUC エンコーディングで伝統字中国語 GB 12345 コードである。 G0 = GL は ASCII、G1
は GB12345、G2 と G3 は未設定である。
gbk
gbk 拡張 GB 2312 簡体字中国語コードである。Windows-936 に同じ。 G0 = GL 対応部は
ASCII である。
gb18030
GB18030 簡体字中国語コードである。ibm-1392, Windows cp54936 に同じ。 G0 = GR は
ASCII であり G1 = GR は GB18030、G2 と G3 は未設定である。
big5
伝統字中国語 BIG5 (倚天方式) コードである。EURO マップを含む。 Latin 部は ASCII
を用いる。
big5-cp950
伝統字中国語 BIG5 (MS cp950) コードである。Latin 部は ASCII を用いる。
big5-hkscs
伝統字中国語 BIG5 に香港増補字符集 (HKSCS) を加えたコードである。 Latin 部は
ASCII を用いる。
big5-2003
伝統字中国語 BIG5-2003 コードである。Latin 部は ASCII を用いる。
big5-uao (experimental)
伝統字中国語 Big5-UAO (http://uao.cpatch.org) コードである。 Latin 部は ASCII を
用いる。
euc-tw
伝統字中国語 CNS11643 第一面、第二面 の EUC エンコーディングである。 G0 = GL は
ASCII、G1 は CNS11643 第一面、G2 は CNS11643 第二面、G3 は未設定である。
VISCII (experimental)
ベトナム語 rfc1456 規定の VISCII コードである。TCVN-5712 ではない。
VIQR (experimental)
ベトナム語 rfc1456 規定の VISCII-viqr エンコードである。
sjis
シフト符号化エンコーディングで、JIS X 0208:1997 コードである。 いわゆるシフト
JIS である。cp932 では無いことに注意。入力側では NEC/ IBM 拡張漢字部を認識し、出
力では使用しない。 また、ユーザ定義外字はすべて未定義とする。 Latin 部は JIS X
0201 Roman を用いる。
sjis-x0213, shift_jis-2003
シフト符号化エンコーディングで、JIS X 0213:2000 コードである。 Latin 部は JIS X
0201 Roman を用いる。
sjis-x0213-2004, shift_jis-2004
シフト符号化エンコーディングで、JIS X 0213:2004 コードである。 十文字追加対
応。Unicode 文字対応は変更せず。 Latin 部は JIS X 0201 Roman を用いる。
sjis-cellular (experimental)
シフト符号化エンコーディングで、JIS X 0208 に NTT Docomo/Vodafone(SoftBank) 携帯
絵文字対応マッピングを追加したもの。vodafone 絵文字入力は自動判定される。 Latin
部は JIS X 0201 Roman を用いる。出力はサポートしていない。携帯向けの URI表現も自
動的には有効にはならない。
sjis-docomo
シフト符号化エンコーディングで、JIS X 0208 に NTT Docomo 携帯絵文字対応マッピン
グを追加したもの。 Latin 部は JIS X 0201 Roman を用いる。
sjis-au
シフト符号化エンコーディングで、JIS X 0208 に AU 携帯絵文字対応マッピングを追加
したもの。 Latin 部は JIS X 0201 Roman を用いる。
sjis-softbank
シフト符号化エンコーディングで、JIS X 0208 に SoftBank 携帯絵文字対応マッピング
を追加したもの。 Latin 部は JIS X 0201 Roman を用いる。
cp932 cp932w
Microsoft 社 cp932 マッピングされたシフト符号化エンコーディングである。 Latin 部
は ASCII を用いる。kana_enbl が自動的に有効になる。
cp50220, cp50221, cp50222
Microsoft 社 cp50220, 50221, 50222 マッピングされた JIS 類似エンコーディングであ
る。Windows 既定の外字部が有効であるため、iso-2022 互換ではない。Latin 部の初期
設定は ASCII である。 本コードを入力に指定した場合、cp50220, 50221, 50222 のいず
れの入力も可能。 また、下記のカナ出力制御は有効で、設定で cp50220 指定で
cp50221, 50222 などの出力も可能である。
cp51932
Microsoft 社 cp932 マッピングされた EUC エンコーディングである。 Latin 部は
ASCII を用いる。 kana_enbl が自動的に有効になるが、補助漢字は明示的には有効にな
らない。
oldsjis
シフト符号化エンコーディングで、JIS X 0208:1978 コードである。 いわゆる旧 JIS
ベースのシフト JIS である。cp932 では無いことに注意。 Latin 部は JIS X 0201
Roman を用いる。
johab
KS X1001 Johab である。Latin 部は KS X1003 を用いる。
uhc
韓国語 UHC (cp949)である。Latin 部は ASCII を用いる。
unicode, utf16, utf16le, unicodefffe
UTF-16 転送形式の Unicode(v9.0) である。unicode, utf16le では入出力はリトルエン
ディアンで、unicodefffe, utf16 はビッグエンディアンとなる。 BOM が
--disable-endian-mark を指定しない限り付けられる。 また、--limit-to-ucs2 を指定
しない限り、サロゲートペアを用いた UTF-32 範囲の値が出力される。細かいコード設定
は以下オプションを参照のこと。 注意:本コードは、エクステンションでは使用できな
い。 当該コードを指定した場合にはエラーとなる。
utf8
UTF-8 転送形式の Unicode(v9.0) である。出力の BOM は --enable-endian-mark を指定
しない限り付けられない。また、--limit-to-ucs2 を指定しない限り、 UTF-32 範囲の値
が出力される。標準では CESU-8 入力は受け付けない。 --enable-cesu8 オプションを指
定することにより、入力として CESU-8 を受付可能である。CESU-8 の出力はサポートし
ていない。 また、UTF-8 入力ではエンディアンマーク (BOM) は有無にかかわらず無視さ
れる。
utf7
UTF-7 転送形式の Unicode(v9.0) である。 出力範囲は U+10000 未満の範囲に限ら
れ、それ以上は未定義扱いである。 UTF-7 入力ではエンディアンマーク (BOM) は有無に
かかわらず無視される。
keis (experimental)
日立 KEIS 83/90 コードである。出力可能な文字集合範囲は JIS X 0201, X 0208 に限ら
れる。試験的サポートである。
jef (experimental)
富士通 JEF である。基本部かつ入力のみの試験的サポートである。
ibm930 (experimental)
IBM DBCS 日本語および EBCDIC Kana の組み合わせである。
ibm931 (experimental)
IBM DBCS 日本語および EBCDIC latin (cp037) の組み合わせである。
ibm933 (experimental)
IBM DBCS+SBCS 韓国語である。
ibm935 (experimental)
IBM DBCS+SBCS 簡体字中国語である。
ibm937 (experimental)
IBM DBCS+SBCS 伝統字中国語である。
koi8r
ロシア語 KOI-8R コードである。
cp1250
Windows cp1250 コードである。
cp1251
Windows cp1251 コードである。
nyukan-utf-8 nyukan-utf-16
日本国法務省告示582号で規定する在留カード等に係る漢字氏名等の標記に係る正字 (い
わゆる入国管理局正字。以下「入管正字」という。) に変換する。 変換方法の詳細は下
記で示す。
arib-b24
ARIB 標準規格 ARIB-STD-B24 第一編第2部第7章規定の8単位文字符号である。
arib-b24-sjis
ARIB 標準規格 ARIB-STD-B24 第一編第2部第7.3章規定のシフトJIS文字符号である。
transparent
入力の文字を無変換で透過する。改行文字変換、folding を含む一切のコード制御指定は
無視される。
ショートカット
以下の各行のオプションは同じ意味である。
-j --oc=jis
-s --oc=sjis
-e --oc=euc-jp
-q --oc=ucs2
-z --oc=utf8
-E --ic=euc-jp
-J --ic=jis
-S --ic=sjis
-Q --ic=ucs2
-Z --ic=utf8
JIS/ISO 2022 コード固有制御
以下は入力が ISO-2022 に沿ったコード系である時のみ有効である。 以下の設定は、入力として
指定したコード系で決まる値を、オプションの指定順序によらず上書きする。
--set-g0=キャラクタセット名
iso-2022 系のコードの入力時に G0 にあらかじめセットしておくキャラクタセット名を指定する。 初
期状態では、GL に G0 が設定されている。
--set-g1=キャラクタセット名
iso-2022 系のコードの入力時に G1 にあらかじめセットしておくキャラクタセット名を指定する。 初
期状態では、GR に G1 が設定されている。
--set-g2=キャラクタセット名
iso-2022 系のコードの入力時に G2 にあらかじめセットしておくキャラクタセット名を指定する。
--set-g3=キャラクタセット名
iso-2022 系のコードの入力時に G3 にあらかじめセットしておくキャラクタセット名を指定する。
各プレーンに指定できるのは、以下のとおり。'o' が指定可能なことを、'x' が指定不可能であ
ることを意味する。 Unicode 関連コードセットでは、このオプションは無視される。 ま
た、ISO-2022 以外のコード系ではサポートされていない。結果はコードセットに依存する。
g0 g1 g2 g3 キャラクタセット名 説明
o o o o ascii ANSI X3.4 ASCII
o o o o x0201 JIS X 0201 (latin part)
x o o o iso8859-1 ISO 8859-1 latin
x o o o iso8859-2 ISO 8859-2 latin
x o o o iso8859-3 ISO 8859-3 latin
x o o o iso8859-4 ISO 8859-4 latin
x o o o iso8859-5 ISO 8859-5 Cyrillic
x o o o iso8859-6 ISO 8859-6 Arabic
x o o o iso8859-7 ISO 8859-7 Greek-latin
x o o o iso8859-8 ISO 8859-8 Hebrew
x o o o iso8859-9 ISO 8859-9 latin
x o o o iso8859-10 ISO 8859-10 latin
x o o o iso8859-11 ISO 8859-11 (TIS 620 (Thai))
x o o o iso8859-13 ISO 8859-13 latin
x o o o iso8859-14 ISO 8859-14 latin
x o o o iso8859-15 ISO 8859-15 latin
x o o o iso8859-16 ISO 8859-16 latin
x o o o tcvn5712 TCVN 5712 (Vietnamese)
x o o o ecma113 ECMA 113 Cyrillic
o o o o x0212 JIS X 0212:1990 補助漢字
o o o o x0208 JIS X 0208:1997
o o o o x0213 JIS X 0213:2000 Plane 1
o o o o x0213-2 JIS X 0213:2000 Plane 2
o o o o x0213n JIS X 0213:2004 Plane 1
o o o o gb2312 Simplified Chinese GB2312
o o o o gb1988 Chinese GB1988(latin)
o o o o gb12345 Traditional Chinese GB12345
o o o o ksx1003 Korian KS X 1003(latin)
o o o o ksx1001 Korian KS X 1001
x o o o koi8-r Cyrillic KOI-8R
x o o o koi8-u Ukrainean Cyrillic KOI-8U
o o o o cns11643-1 伝統字中国語 CNS11643-1
x o o o viscii-r RFC1496 VISCII (右半面)
o o o o viscii-l RFC1496 VISCII (左半面)
x o o o cp437 Microsoft cp437 (US latin)
x o o o cp737 Microsoft cp737
x o o o cp775 Microsoft cp775
x o o o cp850 Microsoft cp850
x o o o cp852 Microsoft cp852
x o o o cp855 Microsoft cp855
x o o o cp857 Microsoft cp857
x o o o cp860 Microsoft cp860
x o o o cp861 Microsoft cp861
x o o o cp862 Microsoft cp862
x o o o cp863 Microsoft cp863
x o o o cp864 Microsoft cp864
x o o o cp865 Microsoft cp865
x o o o cp866 Microsoft cp866
x o o o cp869 Microsoft cp869
x o o o cp874 Microsoft cp874
x o o o cp932 Microsoft cp932 (Japanese)
x o o o cp1250 Microsoft cp1250 (中欧)
x o o o cp1251 Microsoft cp1251 (Cyrillic)
x o o o cp1252 Microsoft cp1252 (Latin-1)
x o o o cp1253 Microsoft cp1253 (Greek)
x o o o cp1254 Microsoft cp1254 (Turkish)
x o o o cp1255 Microsoft cp1255
x o o o cp1256 Microsoft cp1256
x o o o cp1257 Microsoft cp1257
x o o o cp1258 Microsoft cp1258
--euc-protect-g1
EUC 時、ISO-2022 に従う G1 に対するコードセットの呼び出しを抑止する。G1 への呼び
出しシーケンスは無視される。
--input-detect-jis78
コードセット自動検出時、JIS X 0208:1978 (C6226:1978) と JIS X 0208:1983/1990 を
区別する。 既定値は、この二つのコードセットとも JIS X 0208:1983/1990 と見なされ
る。 JIS 入力時のみ有効。 入力コードセットに JIS X 0208:1978 を明示指定した場合
はこのオプションの有無にかかわらず指定されたコードセットが使用される。
X-0212 (補助漢字) 制御
--enable-x0212
X 0212 補助漢字を利用する。このオプションを指定しない場合、 JIS/EUC 出力時補助漢
字は未定義扱いとなる。 KEIS 及び Shift-JIS 出力の場合、このオプションは無視さ
れ、常に未定義扱いとなる。 Unicode 出力の場合、このオプションは無視され X 0212
補助漢字は常に有効になる。 補助漢字を使用しないコードセットでは意味を持たない。
なお、このオプションは従来互換のためサポートされており、将来削除されるかもしれな
い。
Unicode 固有制御
skf-2.1 は Unicode 11.0 仕様を用いている。
--use-compat --no-compat
--no-compat の
定の異体字または未定義文字に変換する。--use-compat は互換領域をそのまま出力す
る。 既定値は「互換領域をそのまま出力する」である。 一部のコードセットでは、この
機能はコードセット属性として有効化または抑止される。 コードセットの記載を参照さ
れたい。
--use-ms-compat
内部で Unicode に変換する際の入力側マップを JIS X 0208 ではなく Microsoft CP932
として扱う。通常 Unicode 出力を指示しているときのみ意味を持つ。 これは Windows
の WideCharToMultiByte と互換であることは意図していない。同関数と互換な指定を行
う場合は、codeset として cp932w を指定する。
--use-cde-compat
Unicode 出力時、JIS X 0208 から Unicode への変換時に CDE (Common Desktop
Environment) 仕様互換変換を行う。
--little-endian
Unicode 出力を指示しているとき、出力をリトルエンディアンにする。
--big-endian
Unicode 出力を指示しているとき、出力をビッグエンディアンにする。
--disable-endian-mark --enable-endian-mark
UTF-16/32 または UTF-8 出力 (-q) を指示しているとき、 エンディアン指示キャラクタ
の出力を制御する。 UTF-16/32 では既定値は BOM 有効、UTF-8 では既定値は BOM 無効
である。
--input-little-endian
Unicode 入力を指示しているとき、入力をリトルエンディアン扱いにする。 入力中のエ
ンディアン指定キャラクタが優先される。既定値である。
--input-big-endian
Unicode 入力を指示しているとき、入力をビッグエンディアン扱いにする。 入力中のエ
ンディアン指定キャラクタが優先される。
--endian-protect
入力中のエンディアン指定キャラクタを無視する。 既定値はオフ (無視しない) であ
る。
--limit-to-ucs2
出力コードを UCS2 で表現できる範囲に制限する。すなわち、U+10000 以上を使用しな
い。既定値はオフ、すなわち U+10000 以上を使用する。
--disable-cjk-extension
CJK extension A/B 領域を未定義扱いにする。既定値はオフ (未定義ではない) である。
--enable-cesu8
UTF-8 入力時に CESU-8 を受付可能にする。既定値はオフ (受付拒否される)。 UTF-8 以
外の入力 codeset に対しては、単に無視される。
--non-strict-utf8
UTF-8 入力時のチェックをゆるめ、不正なエンコーディングがされた UTF-8 の変換を有
効にする。何をしているのか十分理解の上利用のこと。
--enable-nfd-decomposition --disable-nfd-decomposition
Unicode 正規分解をおこないを結果を出力する/しない。既定値は出力しない (分解しな
い)。
--enable-nfda-decomposition --disable-nfda-decomposition
Apple 社互換の Unicode 正規分解をおこない結果を出力する/しない。既定値は出力しな
い。
--oldcell-to-emoticon
NTT Docomo/AU の Unicode PUA を用いた旧マッピングを Unicode 6.2 の新マッピングに
変換する。旧マッピングへの変換はサポートしていない。
各種コードセット依存制御 (入力コード判定)
skf では、ic で明示的に入力コードセットが指定されない場合は、自動判定を試みる。 自動判
定で判定困難な場合の動作はその際の状態に依存するが、矛盾しない限り使われる既定のコード
セットは定義されている。 配布キットでの標準値は euc-jp.open であるが、コンパイル時に変
更が可能で、-h オプションにより既定値を知ることができる。 また、以下は自動判定時に判定
を制御するためのスイッチである。 既定値は、すべてオフである。
--old-nec-compat
入力で、古い NEC 文字エスケープシーケンス (ESC-H, ESC-K) を有効にする。
configure 実行時にコンパイルオプション --enable-oldnec が必要。
--no-utf7
入力が UTF-7 で無いことを指定する。このオプションにより、入力が UTF-7 であるかど
うかのテストが抑止される。
--no-kana
入力に JIS X 0201 かなが含まれないことを指定する。同時に、Unicode の半角 かな部
も使っていないものとする。これはあくまでも判定処理への情報であり、これらのカナが
実際に含まれていた場合は、判定コードセットに従った所定の処理がされる。
--input-limit-to-jp
入力コードセット自動判定で文字集合が日本語関連のもののみを検出する。入力のコード
セットの明示指定には影響しない。
拡張オプション
出力関係制御
skf の標準の出力先は標準出力であるが、nkf 同等の既存ファイルのコードを変換する機能も提
供している。
--overwrite --in-place
入力として指定されたファイルを、指定のコードセットに変換する。--overwrite では変
更時刻は元のファイルのものが維持される。
-O オプションの後に並んでいるファイル名の最初のものを出力ファイル名とみなし、その
ファイルに出力する。当該ファイル名のファイルが存在する場合には、上書きされる。
skf には、様々なローカルの環境に合わせた文字出力機能が実装されている。 その多くは、この
項で説明する拡張オプションで制御する。
--use-g0-ascii
コードセット指定を上書きして、出力の G0(=GL) を ASCII にする。
X-0201 カナ出力制御
skf は X 0201 カナ部を、以下のカナ出力オプションを指定しない場合は、出力時 X 0208 カタ
カナに変換する。 X 0201 カナを使う場合は以下のオプションを指定する。 但し、Unicode で相
当するいわゆる半角かなの出力は、以下スイッチではなく --use-compat で制御される。 本項の
オプションは、日本語以外が出力コードセットとして指定されている場合は意味を持たない。
--kana-jis7
X 0201 カナを SI/SO コードによって呼び出し、使用する。出力が JIS または cp50220
の時のみ有効。
--kana-jis8
X 0201 カナを 8ビットコードの右半面に呼び出し、使用する。 出力が日本語シフト符
号化表現時と JIS 時のみ有効。
--kana-esci --kana-call
X 0201 カナを ESCAPE-(-I によって呼び出し、使用する。出力が JIS 時のみ有効。
--kana-enable
出力符号系が EUC または cp51932 時 X 0201 カナを SS2 によって呼び出し使用する。
ShiftJIS 時は X 0201 カナをそのまま透過する。cp50220 または JIS 指定時は
--kana-call に同じ。
ラテン文字制御
skf は、Unicode(TM) 系出力の時、ascii にないラテン文字はそのまま透過するが、 その他の出
力コード系を指定した場合には、変換を試みる (KEIS 時は html/TeX への変換以外は無効であ
る)。変換ルールは、以下の順で試みられる。
(1) 出力コード系に対象文字がある場合には、それを出力する。
(2) --convert-html などの html/sgml 変換が指定されているばあいは、 実体参照または数値文
字参照により出力される。
(3) --convert-tex が指定されており、当該文字が TeX で定義されている場合は、それを出力す
る。
(4) 文字の組み合わせで表現できる (そのような慣行がある) 場合は、 その文字の組み合わせを
出力する。
(5) 置換文字を出力する。-I を指定した場合、同時に警告が出力される。
項番 (5) で使用される置換文字に関しては、以下のとおり。
(1) Unicode(TM) 系出力で、--use-replace-char が指定されている場合は Unicode 未定義文字
コード U+fffc を使う。
(2) げた (〓) 文字のある文字集合 (Unicode, JIS, GB2312 等) については、げた文字を用い
る。
(3) 黒四角文字のある文字集合 (BIG5 等) については、この文字を用いる。
(4) それ以外の文字集合の場合は、'.' を用いる。
--convert-html --convert-sgml
指定した出力文字集合ないにない文字を、html/sgml/xml 表現の文字実体参照に書き換え
る。 未定義の場合には、数値文字参照呼び出し (10 進) で出力する。 出力文字集合で
既定義のものは、--html-sanitize が指定されているとき以外は html として許されない
ものについても何もしない。 この二つのオプションは同じ動作をする。
--convert-html-decimal
ラテン文字を html/sgml 表現の、数値文字参照呼び出し (10 進) に置き換える。
--convert-html-hexadecimal
ラテン文字を html/sgml 表現の、数値文字参照呼び出し (16 進) に置き換える。
--convert-tex
ラテン文字を、TeX 表現に書き換える。
--use-replace-char
skf の出力時の既定の未定義文字コードはゲタであるが、それに代わり Unicode 未定義
文字コード U+fffc を使う。既定値はオフである。下記参照。
--use-iso8859-1
出力時、iso-8859-1 で定義されている文字を iso-8859-1 を右半面 & G1 に呼び出して
使用する。定義されていないものに関しては何もしない。
--use-iso8859-1-right
出力時、iso-8859-1 で定義されている文字を iso-8859-1 を G1 に呼び出して 7-bit
コード系で使用する。定義されていないものに関しては何もしない。 iso-2022 系の出力
コードセット指定時のみ有効である。
入出力符号化制御
--decode=エンコード方式
--encode=エンコード方式
定できるのは、hex, mime, mime_q, mime_b, rot, uri, ace, rfc2231, base64,
qencode, none であり、順に CAP 符号、MIME エンコーディング (自動判定)、MIME Q エ
ンコーディング、MIME B エンコーディング、 rot13/47 符号、URI 文字参
照、PUNYCODE、RFC2231 ファイル名, base64 エンコーディング, q エンコーディングを
意味する。none はデコードを行わない。 エンコードで指定可能なのは、hex, mime_b,
mime_q, uri, ace, cap, hex_perc_encode, base64, none である。 元々 ASCII に変換
するコードセット (例: UTF-7)、および EBCDIC 系、B-right/V 系のコードセットとは両
立せず、 エンコード指定が無視される。 URI 文字参照では、文字実体参照は対応してい
ない。 このデコード/エンコード指定は一度に一つしか指定できず、最後に指定したもの
が有効である。 MIME エンコーディングでは、ヘッダ指定が優先される。また、MIME デ
コードを指定した場合に地の文の判定がされていなかった場合、地の文のコードは EUC-
JP が仮定される。また、rot47 は日本語コード、他のエンコーディングでは入力が
ascii でなければならない。特に入出力コードが UTF-16 の場合、本オプションは無視さ
れる。
--mime-ms-compat
このオプションを指定した場合、MIME-B/Q および rfc2231 デコードで指定された
iso-2022-jp を cp50220 として、 euc-jp を cp51932 として、Shift-JIS を cp932w と
して扱う。 他のコードセットについては何もしない。MIME および rfc2231 以外に対し
ても何もしない。 --mime-persistent skf はメールアドレス類似の文字列を検出し
て、MIME エンコードしないように制御する。 本オプションはその機能を無効にする。
--mime-limit-aware 上記のアドレス部の検出時、アドレス部の掃き出しで MIME の文字
数制限を無視しない。 このオプションを指定すると、行末に近いアドレス部がエンコー
ドされる可能性がある。
ショートカット
以下の各行のオプションは同じ意味である。
-m --decode=mime
-mB --decode=mime_b
-mQ --decode=mime_q
-m0 --decode=none
-M --encode=mime_b
-MB --encode=base64
-MQ --encode=mime_q
改行コード制御
--lineend-thru
改行コードを変更しない。^Z についてもそのまま出力する。これが既定値である。
--lineend-cr --lineend-mac -Lm
改行コードを CR にする。同時に ^Z を削除する
--lineend-lf --lineend-unix -Lu
改行コードを LF にする。同時に ^Z を削除する
--lineend-crlf --lineend-windows -Lw
改行コードを CRLF にする。同時に ^Z を削除する
-F[行長[[+-]禁則][+-]]
-f[行長[[+-]禁則][+-]]
「行長」で指定された文字数で改行する。 f はテキスト中の改行を削除し、F は削除し
ない。 ぶら下がり禁則、追い出し禁則の両方をサポートし、ぶら下がりの最大数は「禁
則」 で指定される。いずれも指定しなければ標準値となる。 「行長」の標準値は 66
で、指定可能な最大数は 999である。 「禁則」の標準値は 5 で、指定可能な最大値は
10 である。また、 skf の既定では、f 指定時に文章節の自動判定を行い一部の改行を残
す動作となるが、二番目の '+' の指定により当該判定を抑止する。また、以下の nkf-
compat オプションの指定により、以下のように動作が変更される:
(1) 既定時の行長の値 が 60, 禁則の値が 10 となる
(2) ascii 英数字がぶら下げの約物として扱われる
互換機能
--nkf-compat
引き続くオプションを nkf オプションとして解釈する。-Z, -x, -X オプションは nkf
と同じ動作をするよう変更される。 また、-B, -c, -d, -g, -i, -l, -o, -t, -w, -W の
各オプションが利用可能になる。 また -a, -A, -n, -N の各オプションが無効化され
る。 -T オプションはサポートされない。 拡張オプションに関しては、nkf の全オプ
ションが実装されているわけではない。また、fF オプションの動作が変更され、MIME デ
コードが有効となり、--early-mime-out がセットされる。 これ以外にも nkf 互換の動
作をおこなうよう内部動作が幾つか変更される。下記 NOTES 参照のこと。 また、skf の
バイナリを nkf という名前で呼び出した場合、nkf-compat が設定されているものとして
扱う。この場合、以下の点に注意のこと。
(1) 以下の --reset で skf 固有モードに戻る
(2) 環境変数も nkf のオプションとして解釈される。環境変数名は SKFENV 等のままで
ある。
--skf-compat
引き続くオプションを skf のオプションとして解釈する。こちらが既定値である。
-r
nkf 互換 rot 機能。nkf-compat 時のみ有効。このモードでは、入力が JIS/Shift_JIS/
EUC (cp932 などの派生を含む) でなければ動作しない。skf 互換モードのときは
--decode=rot と同じ動作となる。
-h[123]--hiragana--katakana--katakana-hiragana
-h, -h1, --hiragana は全てのかなをひらがなに変換する。 -h2, --katakana は全ての
かなをカタカナに変換する。 -h3, --katakana-hiragana はひらがなとカタカナを交換す
る。
--nkf-help
nkf のオプションを skf のオプションに書き換えるためのヘルプを表示する。
--in-place[=SUF] --overwrite[=SUF]
入力として指定したファイル名で、コードを変換したファイルを作成する。その際に -overwrite ではファイル作成時刻を維持するよう動作する。
SUF を指定の場合には、出力ファイル名の最後に SUFで指定の文字列が付け加えられ、入力ファイルは削除されない。
軽量言語サポート
plugin としての skf は、ファイル入出力関係 (-b, -u, --overwrite --in-place, --filewise-
detect --linewise-detect --show-filename --suppress-filename) と、 UTF-16/32 出力以外は
通常の skf と同じオプションをサポートする。
Ruby 1.9/2.x のみのオプション
Ruby は文字列で CCS エンコーディングを用いているため、skf は通常は出力で指定した エン
コーディングをその文字列のエンコーディングとして返す。以下はその動作を上書きする。
--rb-out-ascii8bit
出力を ASCII-8BIT として返す。
--rb-out-string
出力に指定された出力エンコーディングを指定して返す (i.e. 標準に戻す)。
Python-3.x のみのオプション
Python3 の文字列は UCS2/UCS4 であり、それに伴い skf は出力コードセットに UTF-16 または
UTF-32が指定された時、skf は Unicode Object を返し、それ以外のコードセットでは Binary
Array Object を返す。 以下のオプションはその動作を上書きする。なお、既定では UCS2/UCS4
の範囲外は抑止され、 BOM は出力されない。
--py-out-binary
UTF-16/32 出力でバイナリアレイオブジェクトを出力する。この場合は BOM が追加され
る。
--py-out-string
強制的に Unicode Object で出力する。0x80-0xff では一種の擬似 ASCII-8bit が出力さ
れ、 C1 の領域が使われるため、理解して利用のこと。
入力としては、Unicode Object と Binary Array Object の両方共受け付けられる。
各種制御
--disable-space-convert --enable-space-convert
enable-space-compat を指定した場合、JIS X 0208 間隔が ascii 空白二個に変換され
る。 既定値は変換無効となっている。
--html-sanitize
入力中、HTML 等として不適当な文字をエスケープする。具体的には、"!#$&%()/<>:;?´
の各文字が文字実体参照にエスケープされる。JIS の漢字を構成する文字等はエスケープ
されないので、理解して利用のこと。
--filewise-detect --force-reset
入力ファイルを複数指定した際に、ファイル毎にコードを個別判定する
--linewise-detect
一行毎にコードを個別判定する。コード認識能力は低下するので、注意して利用の事。
--inquiry
入力ファイルのコード判定だけを行う。コード判定後結果を出力して終了する。
--filewise-detect を自動セットする。複数入力ファイルが指定されている場合は、
--show-filename が自動セットされる。
--hard-inquiry
inquiry に加えて入力の改行コードも報告する。 複数ファイル名を与えた場合には
--show-filename が自動的に有効になる。
--suppress-filename
--inquiry を指定している際に、ファイル名を出力しない。--show-filename より優先さ
れる。
--show-filename
--inquiry を指定している際に、ファイル名を出力に追加する。
--invis-strip
invis strip mode. ISO-2022処理に関係しない esc 制御文字列を透過しない。 制御文字
は skf が握りつぶす。
-v --version
バージョンとコンパイルオプション情報を出力する。
-I 入力に処理対象外の文字が含まれていた場合に警告を出す。
-h --help
簡単なヘルプを表示する。
--reset
これより前に指定したすべての拡張オプションをクリアする。 環境変数で指定したもの
なども全てクリアされる。nkf 互換モードもリセットされる。
--show-supported-codeset
サポートしている入出力コードセット名を出力する
--show-supported-charset
サポートしている出力キャラクタセット名を出力する
-%[debug_level]
skf のデバッグ機能を有効にする。デバッグレベルは一文字の数字で、大きい方が多く
のデバッグ情報を出力する。 このオプションはコンパイル時のオプション --enable-
debug が必要である。
FILES
/usr/(local/)share/skf/lib (Unices)
/Program Files/skf/share/lib (MS Windows)
skf 外部コードセット変換テーブルディレクトリ。skf が見ているディレクトリ位置
は、-v オプションで知ることができる。
AUTHOR
かねこ efialtes@osdn.jp
元のnkf: 市川 至 ichikawa@flab.fujitsu.co.jp
X 0213:2000 漢字コード表は earthian@tama.or.jp さんの仕事に由来します。
文字マッピングは、他にも様々なソースからのものを利用しています。詳細は copyright 文書に
記載されています。
ACKNOWLEDGE (敬称略)
日向(HKE)、芦沢(CRL)、国本(SDL)、猪股(SDL)、大原(京大)、Jokagi(elf2000)、 成瀬(at
osdn.jp) の皆さんに感謝。
BUGS AND LIMITATION
(1) nkf と異なり EUCコードと JIS の混在コードは処理可能、またマイクロソフト JIS コード
と JIS の混在コードは Locking/Single シフトと G2/G3 処理を抑止しているという 制限付きで
処理可能だが、その際は入力コードをマイクロソフトJISコードもしくは EUC コードと明示指定
すること。自動判定では混在コードが MS-JIS と EUC のいずれと判定されるかは予測できない。
やむを得ない場合には、--linewise-detect Option でコードが混在している場合でも各行単位で
対処できるが、コード判定能力は低下する。 事前に期待されるコードセットが分かっている場合
は、明示的に指定することを推奨する。
(2) UCS2/UTF-16 で BOM がある場合、自動認識は通常できるが、明示指定を推奨する。 UTF-8/7
も同様で、UCS2/UTF-16 より正しく認識されない可能性が高い。 サロゲートペアは認識し、言語
情報部に対応している。 また、合成文字はそのまま出力し、正規化は行わない。
(3) skf-2.1 は ISO-2022 シーケンスを制御文字呼び出しを除く範囲でサポートしているが、 相
違点がいくつかある。
i) GL 0x20 は常に空白である。GL 面に 96 文字文字集合が呼ばれている場合も同様。
ii) 制御文字集合呼び出し (C1, C2) は無視される。
iii) G0 に skf がサポートしていない文字集合を呼んだとき、ascii に戻しロッキングシフ
ト、シングルシフトは解除する。G1-G3 への呼び出しは無視される。 プライベート文字集合の呼
び出しも同じ扱いとする。
vi) 96 文字複数バイト集合呼び出しは無視される。
v) ISO-2022 系コードセットから UTF-8, UTF-16 に対するコーディングシステム呼び出しは可
能で、標準戻りで元のコードセットに復帰する。 他の組合せの場合の呼び出しと標準戻りは無視
される。
vi) 携帯電話絵文字などの関係で、IANA と無関係の私用コードセットが幾つか定義されてお
り、呼び出し可能である。
(4) UTF-7 を自動検出している関係で、純粋に ASCII だけのテキストでおかしな挙動をする可能
性がある。 その場合は、--no-utf7 を指定してほしい。
(5) エラー出力のコード系は LOCALE 指定によるが、 標準エラーと標準出力を同じストリームに
リダイレクトしたときのことは考慮していない。使い方で何とかしてほしい。
(6) 1.91 以降の skf では、KEIS/JIS X 0213 の拡張漢字集合の変換には Unicode 7.0 の範囲を
一杯に用いているため、JIS への変換時に一部の異体字は未定義になる。 また、これと関連して
Unicode CJK compatibility 領域にある漢字は、use-compat 未指定時にコードセットによっては
未定義になる。
(7) JIS X 0207:1979 は未サポート。同仕様に沿った制御コードを含む場合は何が起きるかわか
らない。 JIS X 0211:1987 はサポートしているが、 --invis-strip 未指定時の端末制御シーケ
ンスの透過性は端末に依存する。 vt100 の主要なものは透過だが、一般端末については未確認で
あるため、telnet 等からの標準入力のフィルタとして利用する場合は注意されたい。
(8) バッファ抑止指定 (-u) がされている場合にも、変換に関係するバッファ処理 (例 MIME) は
抑止されない。
(9) skf-2.0 およびそれ以降で認識される言語は iso639-1 (Alpha 2) で定義されたものだけで
ある。iso639-2 はサポートしていない。
(10) UCS2/UTF-16 コードは、ruby/python 3.x 以外の言語エクステンションでは使用できない。
これは各言語と SWIG の文字列渡し関連の制約である。 このため、明示的に未定義扱いとしてい
る。
(11) skf-2.1 では Macintosh の RLO 方向指定文字の属性を保持しない。 従って、これらを用
いたコードセットはサポートしない。
(12) CNS11643 は三面までしかサポートしていない。4面以降は認識するが未定義である。
Notes
(1) 非公開オプションが多数あるが、試験的なものと考えられたい。
(2) 拡張オプション系は 2.0 でかなり削除、仕様変更されているため、 スクリプト内で利用す
る場合は見なおしてほしい。
(3) skf は nkf (PDS) 版から派生したプロジェクトではあるが、元の nkf のコードは含まれて
いない。copyright のみ残してある。
(4) JIS X 0213:2000 文字テーブルは、JIS X 0213 InfoCenter の earthian@tama.or.jp さんの
テーブルを修正したものである。
(5) v1.9 からコードセットの既定値を X 0208:1997 + Microsoft Windows 互換外字に変更し
た。
(6) 外字や Unicode 標準などに含まれる単位記号のリガチャは skf-1.30 より JIS X 0124:1981
準拠第一形式を出力する。従って、文字数・文字長が変化する場合がある。 これ以外にも、一対
一で表示できない文字集合を出力に指定した場合、文字数・文字長が変わる場合がある。
(7) 1バイト文字系の文字セット、例えば ASCII などは認識され、所定の変換をされる。
(8) skf では、EUC は ISO-2022 の派生系コードとして扱っているので、 所定のシーケンスで
G0/G1 を置き換えられる。このため、G0,G1 を置き換えると左右半面のコード系が差し代えるた
め、他の EUC を扱う漢字フィルタとは違う動きをするので注意されたい。 G1 の置き換えは、
--euc-protect-g1 で抑止できる。
また、EUC の kana-call オプションでは、G2 のコードセットがかなであることを仮定する。こ
のオプション指定時に G2 がカナであることを実行時に確認はしないし、G2 にカナを改めて設定
することもない。
(9) iso-8859 を G1 に iso-2022 規定の手順で呼び出した場合に G1 には iso-8859 がセットさ
れるが、この状態で G0 に JIS X 0201 を呼び出しても G1 には手を付けない (iso-2022 の規定
通り)。 G0/G1 に一括して JIS X 0201 を戻す方法はない。
(10) --inquiry で出力されるのは、skf がこの入力をどのコード系として処理するかであり、入
力判定が下った時点で以降の文字は読まない。 このため、判定が甘いことがある。
(11) EBCDIC 系の Code が一応サポートされているが、拡張漢字の処理と小文字処理 (EBCDIK等)
が (私があまり必要性を感じていないこともあり) 試験的サポートである。 もちろんレポート・
修正していただけるなら大歓迎である。
(12) 昔の nkf の -i, -o オプションは nkf-compat モード時のみサポートしているが、
iso-2022-jp および類似コードセットでのみ意味を持ち、 コードセットの既定値の設定とは無関
係である。このオプションは、skf では強く非推奨。 また、今後削除あるいは挙動が変更される
可能性がある。
(13) iso-2022 系のコードセットの入力側の G2, G3 は、明示的にオプションで指定しない場合
は、自動検出時には iso-2022-jp と同じコードセットが、明示指定時には出力側と同じコード
セットが指定される。 暗黙指定を仮定して G2, G3 をシングルシフトで呼び出した際には変換結
果が異なるため、注意されたい。
(14) RFC2045 仕様に従い、encoding 時にロッキングシフト、シングルシフトは見ていない。
decode 結果に対するシフトは有効である。
(15) Windows-31J (cp932) では仕様上 latin 部は JIS X 0201 Roman ということになっている
はずであるが、現実の Windows の動きは ASCII と X-0201 Roman との区別がないため、skf で
は ASCII を使っている。 2.1x ではこれを変更するオプションは提供しない。
(16) nkf 互換機能: nkf-compat モード時の動作と nkf との差違を下記に示す。
1) --prefix, --fb-* の一部、--no-best-fit-chars は未サポート。他はエラー時の互換性を保
証しない。
2) nkf 互換指定での -r オプションは rot デコードとは別動作で、 エンコードを含め動作する
が、入力・出力とも JIS, EUC, SJIS 以外をサポートしない。 また、この場合には EUC, SJIS
範囲外の CP932/CP51932 由来のフォールバックも動作しない。 これ以外のコードセットでも
rot デコード明示指定は動作する。
3) MSDOS での動作はサポートされない。-T --exec-in, --exec-out もサポートされない。-O は
サポートされている。
4) MIME まわりでエラー処理、折り返し処理、コードセット選択に多数の相違点がある。 ま
た、Non-Strict デコーディングはサポートしていない。
5) 改行回り、特に複数の改行文字が混在するテキストでは互換には動作しない。
6) --guess で返すコードセット名は互換ではない。--help や --version の結果も異なる。-Z3
で nkf より多くの文字がエスケープされる。
7) 以下、相違点ではなく、上記に未記載の nkf の仕様に由来する --nkf-compat 時のみ有効と
なる細かい動作の変更点を示す。 EUC-JP 時に nkf 互換時のみ 0x80-0x9f が出現した場合に入
力コードセット Shift_JIS に切り替えられる。改行コード混在時、cr と lf がともに検出され
ている場合 crlf に正規化する。 MIME の途中に改行が入っている場合のリカバリを行わ
ず、MIME で正規に次行にわたっている場合に余分な改行を検出した場合の読み飛ばしの範囲を広
げている。入出力で JIS X 0213(2000) が指定されていた場合、JIS X 0213(2004/2012) と解釈
される。MIME エンコード時に、ストリーム末に改行がなかった場合に改行が補われる。
(17) 入管正字への変換は、以下のとおり。出力形式は Unicode UTF-8 又は UTF-16 であ
る。limit-to-ucs2 などの Unicode 系の文字制限は無効化される。
1) JIS X0208(1997), JIS X 0212(1990), JIS X 0213(2004/2012)、法務省告示 582
号別表一に収録されている漢字に相当する Unicode/JIS X 0221 の文字はそのまま出力する。
2) 別表第三に従い、別表第四の一、第四の二の左欄にある文字では、第一順位の文字に変換す
る。 但し、文字が第二順位として示されている場合は何もしない。
3) それ以外の漢字については、未定義として扱う。未定義文字の処理は上記参照のこと。 漢字
以外のラテン文字、アラビア文字や絵文字等はそのまま出力される。
(18) ARIB B24 との互換性は下記のとおりである。
1) 入力のみサポート。出力はできない。
2) 国際化文字集合、X-0213 拡張はサポートしていない。
3) マクロは標準定義のものはサポートしているが、新規定義はサポートしない。定義シーケンス
は認識され、丸ごと捨てられる。
4) codeset として ARIB を指定していない場合も、arib 文字集合の呼び出しは可能である。 た
だし、X-0201 0x5f 変更は行われず、マクロ呼出しおよび定義、RPC文字は動作しない(捨てられ
る)。
Notice
Unicode is a registered trademark of Unicode, Inc. Microsoft and Windows are
registered trademarks of Microsoft corporation. Apple and Macintosh are registered
trademarks of Apple Inc. Vodafone is a trademark of Vodafone K.K.
本マニュアルおよび文書中の会社名及び製品名などは、一般に各社の商標または登録商標です。
本マニュアル中では (TM) マークは省略しています。
1/JUN/2013 SKF(1)