From: Kouhei Sutou Date: 2007-09-15T12:24:37+09:00 Subject: [ruby-dev:31785] Re: `scan': character encodings differ (ArgumentError) 須藤です。 In <20070915.120322.-1619798038.kou@cozmixng.org> "[ruby-dev:31784] Re: `scan': character encodings differ (ArgumentError)" on Sat, 15 Sep 2007 12:03:38 +0900, Kouhei Sutou wrote: > これは、異なるエンコーディングのStringとRegexpができるか、だ > と思いました。思ったのですが、できますね。 > > というか、string.c:scan_once()ではrb_enc_check()ではなくて、 > rb_enc_get(str)で十分な気がします。 subとかも同じ理由で動かなかったです。 とりあえず、手元ではこんな風にしてREXMLを動かしてRSS Parser のテストをすることにします。 Index: string.c =================================================================== --- string.c (リビジョン 13445) +++ string.c (作業コピー) @@ -4448,7 +4448,7 @@ struct re_registers *regs; long i; - enc = rb_enc_check(str, pat); + enc = rb_enc_get(str); if (rb_reg_search(pat, str, *start, 0) >= 0) { match = rb_backref_get(); regs = RMATCH(match)->regs; Index: re.c =================================================================== --- re.c (リビジョン 13445) +++ re.c (作業コピー) @@ -2173,7 +2173,6 @@ int no; rb_encoding *enc = rb_enc_check(str, src); - rb_enc_check(str, regexp); p = s = RSTRING_PTR(str); e = s + RSTRING_LEN(str);