成瀬です。 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