From: Masahiro Sakai Date: 2006-09-13T19:52:22+09:00 Subject: [ruby-list:42801] Re: KconvはBMP外の文字を扱えない? 酒井です。 From: NARUSE Yui Date: Mon, 11 Sep 2006 01:04:26 +0900 > 成瀬です。 > > Masahiro Sakai wrote: > > 先日たまたま気づいたのですが、KconvでBMPに含まれない文字を変換すると、 > > 出力エンコーディングで表現可能であっても、空文字列になってしまうようで > > す。 > > これはKconv(= NKF)の仕様なのでしょうか? > > はい、現行では仕様です。 > nkf 2.0.7 以前 (つまり全て) は BMP 外は捨てています。 > > そろそろ対応しないとダメですかねぇ。 > JIS X 0213 対応とかが出てくると厄介ですが、 > BMP 外の UTF-8, UTF-16 対応は可能かな。 もし難しくないのであれば対応して欲しい、と個人的には思います。 UTF-8とUTF-16のの変換で情報が落ちるとは普通考えないため、 現在の仕様だと、知らない間にデータを失ってしまいそうで怖いです。 また、JIS X 0213 対応はともかく、UTF-8とUTF-16の変換は、 (Uconv等ではなく)標準ライブラリだけで出来て欲しいですし。 > なお、ugly hack になりますが、 > > NKF.nkf('-w --numchar-input','𝔖') > => "\340\235\224\226" > irb(main):012:0> NKF.nkf('-w16 --numchar-input','𝔖') > => "\3305\335\026" > なんてことは今でも可能だったりします。 > # つまり、4 bytes UTF-8 や UTF-16 サロゲートペア の入力が非対応 最近(?)のNKFにはこんな機能もあるのですね。知りませんでした。 ありがとうございます。 -- 酒井 政裕 / Masahiro Sakai