From: "NARUSE, Yui" Date: 2007-12-28T15:21:10+09:00 Subject: [ruby-dev:32858] Re: Windowでのデフォルトエンコーディング 成瀬です。 readline を使っている irb だと文字列が ASCII-8BIT になるようです。-- noreadline つけたら変わりました。なので、[ruby-dev:32853] は間違っています。 NARUSE, Yui wrote: >> 1.9では、Encoding.default_externalを、-E(--encoding)または-K >> オプションで決定し、これらの指定がなければEncoding.locale_charmap >> (相当)で得られる情報から決定します。 >> >> 現状、例えば日本語版WindowsではEncoding.locale_charmapは"CP932" >> を返すようになっています。 >> ので、CP932というencodingを定義すれば、この問題も解決します。 >> >> 現状そうなってないのは、単なる時間不足が理由です。 >> Shift_JISのaliasなだけじゃまずいよなあとかそのあたりの検討が >> 必要ですね。 > > ここで問題となっているのは default_external ではなく、string literal > encoding ではないでしょうか。CP932 の定義とかは transcode のを使えばいい > でしょう。 > > そもそも、irb 上の文字列 って eval された文字列だから他の環境でも同じ結 > 果になりませんか。とりあえず手元の MinGW と NetBSD ではそうなっているの > ですが。 > > % ruby19 --encoding=utf-8 -e'eval %q/puts "\xe3\x81\x82".encoding/' > ASCII-8BIT > -- NARUSE, Yui DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA