From: Yukihiro Matsumoto Date: 2005-12-21T21:48:29+09:00 Subject: Re: Multibyte regexps... Hi, In message "Re: Multibyte regexps..." on Wed, 21 Dec 2005 18:59:59 +0900, Horacio Sanson writes: |I am having some issues with regular expressions when working with japanese |strings. | |Using ruby-1.8.3 on Windows XP home (Japanese version) I have this test: | |irb(main):271:0> s = "鞄" |=> "\212\223" |irb(main):272:0> l = "行" |=> "\215s" |irb(main):273:0> l =~ /s/ |=> 1 |irb(main):274:0> puts "#{$`}<<#{$&}>>#{$'}" |E> |=> nil |irb(main):275:0> "#{$`}<<#{$&}>>#{$'}" |=> "\215<>" |irb(main):276:0> s =~ /l/ |=> nil The encoding seems to be Shift_JIS. You have to specify encoding before you make regular expression matching. Put s after every regular expression. $KCODE="sjis" # to make p work right p s = "鞄" p l = "行" p l =~ /s/s puts "#{$`}<<#{$&}>>#{$'}" p "#{$`}<<#{$&}>>#{$'}" p s =~ /l/s matz.