成瀬です。

以下の3つの問題は本家 nkf の nkf.c revision: 1.115 までに修正しました。

> Unicode へ変換できない文字を UTF-8 出力の場合はスキップし、UTF-16 出
> 力の場合は U+0000 で出力するなど、UTF-8、UTF-16 で異なる処理をしてい
> る箇所がある

> --ic が指定された場合は、入力側では半角カナ-全角文字の変換は行なわず、
> 出力側の --oc の指定によって半角カナ-全角文字の変換をする方が良いのでは?
> Windows での cp50220 や cp50221 は、そのようになっている。

> ちなみに、nkf CVS 版で cp5022x のユーザー定義文字の対応を調べてみた
> 所、次のようになっていました。

Unicode to Unicode で一部正規化がされる件は、
抑止オプション名が思いつかなかったので放置します。
意見がある方は nkf-dev ML にて。

>> 次のような変換がされてしまうという問題
>>
>> $ ruby -e 'print "\xef\xbd\x9e"' | \
>> ./nkf --ic=utf-8 --oc=utf-8 | od -tx1
>> 0000000 e3 80 9c
>> 0000003
>
> これは--no-cp932をつければ防止できますがー、
> この辺は別にオプションをつけるか、
> デフォルトで Unicode 間の変換ではオフにした方がいいのですかねぇ。

ついでに、1.116 では NTT DoCoMo と SoftBank Mobile の絵文字の、
Shift_JIS to Unicode 変換に対応してみました。

http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/
http://developers.softbankmobile.co.jp/dp/tool_dl/web/picword_top.php

興味のある方はどうぞ。

-- 
NARUSE, Yui  <naruse / airemix.com>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA