[#37679] [FEATURE:trunk] EncDet again — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

23 messages 2009/01/03

[#37748] $LOAD_PATHとバージョンの運用の関係 — akira yamada / やまだあきら <akira@...>

1.9系でのバージョンの運用と$LOAD_PATHの値について質問です。

12 messages 2009/01/09
[#37758] Re: $LOAD_PATHとバージョンの運用の関係 — "NARUSE, Yui" <naruse@...> 2009/01/11

成瀬です。

[ruby-dev:37738] Re: Encoding.locale_charmap

From: Yukihiro Matsumoto <matz@...>
Date: 2009-01-08 09:06:15 UTC
List: ruby-dev #37738
まつもと ゆきひろです

In message "Re: [ruby-dev:37737] Encoding.locale_charmap"
    on Thu, 8 Jan 2009 17:45:45 +0900, Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp> writes:

|Ruby/Tk で,locale の encoding を得るために
|Encoding.find(Encoding.locale_charmap) なんてことをしていたのですが,
|Encoding.locale_charmap が空文字列を返すことがあるようです.

locale_charmapのソースは以下の通りですから、これが空文字列を
返すのであれば、nl_langinfo()が空文字列を返しているのだと思
います。それってのは正常な状態ではないでしょうが、Rubyからな
んとかできることでもなさそうです。

VALUE
rb_locale_charmap(VALUE klass)
{
#if defined NO_LOCALE_CHARMAP
    return rb_usascii_str_new2("ASCII-8BIT");
#elif defined HAVE_LANGINFO_H
    char *codeset;
    codeset = nl_langinfo(CODESET);
    return rb_usascii_str_new2(codeset);
#elif defined _WIN32
    return rb_sprintf("CP%d", GetConsoleCP());
#else
    return Qnil;
#endif
}

|これは正常な状態でしょうか.
|正常であるなら,どのような場合にそうなるのでしょうか.

むしろこっちが聞きたいです。どんな環境下で空文字列が得られた
のでしょうか。

|locale_charmap が空文字列を返した場合には,
|locale はどのように解釈すれば良いでしょうか.( "US-ASCII" ? )
|
|そもそも,locale の encoding を得るのに
|Encoding.find(Encoding.locale_charmap) なんてことをしているのが
|根本的に勘違いをしているのでしょうか.

ソースを見ればわかるように、locale_charmapはnilを返すことはあ
りえます。また、nl_langinfo はEncodingとは独立に定義されてい
ますから、該当するEncodingが存在しないこともありえるでしょう。
いずれにしてもそのような場合にはUS-ASCIIかASCII-8BITくらいし
か使えないのではないでしょうか。

                                まつもと ゆきひろ /:|)

In This Thread