Masanari Yamamoto
h0131****@ice*****
2005年 2月 16日 (水) 22:17:16 JST
山本です。 On Wed, Feb 16, 2005 at 05:21:43PM +0900, Etsushi Kato wrote: > >>> iconv_openが受け入れ可能な文字列にする方法がわからないので、とりあえず > >>> このままにします。 > >> > >> nl_langinfo(3) が使える環境でしたら、これが良く使われると思います。 > >> 使えない場合は、libiconv に含まれる libcharset の locale_charset()、 > >> それさえ無い場合は、そのまま渡すか、あるいは、独自のテーブルを使うとか、 > >> でしょうか? > > > > solarisではnl_langinfoは"eucJP"になってlocale_charsetは"EUC-JP"になっ > > たので、locale_charsetを参考にしたいと思います。ありがとうございます。 > > おそらくシステムの nl_langinfo が eucJP を返すのであれば、システムの > iconv_open も eucJP を EUC-JP の alias として受けつけるのではない > でしょうか? まあ、実装によるとは思いますけど。 どうやらsolarisのiconvはeucJPしか受けつけないようです。しかし、 uim_create_contextにeucJPを渡しても、skkのエンコーディングがEUC-JPとな っているため、uim_iconv_is_convertibleが0になってしまいます。 int uim_iconv_is_convertible(const char *tocode, const char *fromcode) { iconv_t ic; if (!strcmp("UTF-8", fromcode) || !strcmp(tocode, fromcode)) { return 1; } /* TODO cache the result */ ic = iconv_open(tocode, fromcode); if (ic == (iconv_t)-1) { return 0; } iconv_close(ic); return 1; } -- 山本将也