From: "NARUSE, Yui" Date: 2007-10-16T02:35:11+09:00 Subject: [ruby-dev:32076] "あいう"[/.].encoding #=> ASCII-8BIT と /hoge/.to_s.encoding 成瀬です。 # -*- coding: UTF-8 -*- str = "あいうえお" m = str[/./] p m.encoding #=> となるのですが、ここは UTF-8 文字列を返すべきではないでしょうか。たぶん 単に rb_str_new4() なだけっぽいですが。 Index: string.c =================================================================== --- string.c (リビジョン 13711) +++ string.c (作業コピー) @@ -307,6 +307,7 @@ } else if (STR_ASSOC_P(orig) || STR_EMBED_P(orig)) { str = str_new(klass, RSTRING_PTR(orig), RSTRING_LEN(orig)); + rb_enc_copy(str, orig); } else { str = str_new4(klass, orig); また、 ru = Regexp.new("\xE3\x81\x82".force_encoding('UTF-8')) ru.encoding #=> p ru.to_s.encoding # => re = Regexp.new("\x82\xA0".force_encoding('EUC-JP')) re.encoding #=> rr = Regexp.union(ru,re) #=> /(?-mix:\343\201\202)|(?-mix:\202\240)/ rr.encoding #=> となるのですが、これは意図した動作でしょうか -- NARUSE, Yui DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA