成瀬です。

MORIYAMA Masayuki wrote:
> どのような方法をとるにしても、次のような変換がされてしまうという問題が
> あるので、修正は必要と思います。
> 
> $ ruby -e 'print "\xef\xbd\x9e"' | \
> ./nkf --ic=utf-8 --oc=utf-8 | od -tx1
> 0000000 e3 80 9c
> 0000003

これは--no-cp932をつければ防止できますがー、
この辺は別にオプションをつけるか、
デフォルトでUnicode間の変換ではオフにした方がいいのですかねぇ。

>>> ・Unicode へ変換できない文字を UTF-8 出力の場合はスキップし、UTF-16 出
>>>   力の場合は U+0000 で出力するなど、UTF-8、UTF-16 で異なる処理をしてい
>>>   る箇所があるので、Unicode 処理の見直し。
> 次のようなケースです。(nkf CVS版で確認)
> 
> $ ruby -e 'print "\xa3\xaf"' | \
> ./nkf --ic=euc-jp --oc=utf-8 | od -tx1
> 0000000
> 
> $ ruby -e 'print "\xa3\xaf"' | \
> ./nkf --ic=euc-jp --oc=utf-16le | od -tx2
> 0000000 0000
> 0000002

確認しました、バグなのでスキップで統一します。

>>> ・--ic, --oc オプションと半角カナ処理の見直し。
>> 同じことを考えてnkf CVS HEADでは見直したはずです。
> 
> 次のような問題があります。(nkf CVS版で確認)
> (略)
> --ic が指定された場合は、入力側では半角カナ-全角文字の変換は行なわず、
> 出力側の --oc の指定によって半角カナ-全角文字の変換をする方が良いのでは?
> Windows での cp50220 や cp50221 は、そのようになっている。

確かにそうですね、そうします。

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

これも直すようにします。

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