From: Takahiro Kambe Date: 2008-09-10T22:53:39+09:00 Subject: [ruby-dev:36250] Re: GNU iconv dependency In message <48C7D1E1.5040403@airemix.jp> on Wed, 10 Sep 2008 22:49:15 +0900, "NARUSE, Yui" wrote: > >>> 2. GNU iconvの独自の変換指定の文字列に対して、ウォーニングを出すような > >>> オプションか何かがあれば、なお良い。 > >> また、glibc iconv や libiconv は規格に反して、変換元では valid だが、 > >> 変換先に対応する文字が存在しないケースでも終了してしまうので、 > >> それの回避のために指定するケースがあるのではという考察もありました。 > >> http://www.hi-matic.org/diary/?20080903#03-2 > > > > __ICONV_F_HIDE_INVALIDフラグ、思い出しました。 > > //IGNORE は捨ててその前の encoding だけ渡し、 > //IGNORE の場合は __ICONV_F_HIDE_INVALID を使うってのが無難ですかねぇ。 ここに手を出すということは、 int __iconv_get_list(char ***, size_t *); void __iconv_free_list(char **, size_t); size_t __iconv(iconv_t, const char **, size_t *, char **, size_t *, __uint32_t, size_t *); といった、Citrus Iconvの非公開関数を使うことになります。そうすると、 * Iconv.list あたりは実装できるでしょう。ただ、Iconv.listは、ともかく "//IGNORE" と かは Ruby 側で気を効かせて用意すべきかどうかというのが悩ましいところで す。(何か、秘密のclass変数をtrueにすると有効になるとか、やっぱり隠すか。) -- 神戸 隆博 / Takahiro Kambe