У меня проблема с одним из моих регулярных выражений проверки при использовании нестандартного символа utf-8. Итак, я провожу несколько экспериментов, и кажется, что регулярное выражение ruby ведет себя по-разному, когда это происходит в среде rails или в обычном ruby.
Я публикую здесь свой экспримент с китайской строкой.
В рубине "чистый":
string = "運動會"
puts string[/\A[\w]*\z/]
=> match "運動會" - ok
В рельсах:
# coding: utf-8
task :test => :environment do
string = "運動會"
puts string[/\A[\w]*\z/]
end
$ rake test
=> nothing - not ok
Если я опущу # coding: utf-8
, он идет с invalid multibyte char (US-ASCII)
. Во всяком случае, даже с этим, это не соответствует.
Конечно, я проверил все (ruby_version, кодирование файлов сценариев в utf-8 ..)
Я использую:
- Рельсы 3.0.7
- Ruby 1.9.2 (ruby-1.9.2-p180)
Итак, я пришел к выводу, что рельсы изменяют поведение регулярного выражения, и я не нашел способа заставить его вести себя как в обычном ruby.