【发布时间】:2011-09-06 14:32:01
【问题描述】:
我很难弄清楚为什么 rindex() 会在我的 Rails3.0.7 应用程序(ruby 1.8.7)中引发商标字符异常:
irb(main):007:0> "™ foo™".mb_chars.rindex(/\W/)
ActiveSupport::Multibyte::EncodingError: malformed UTF-8 character
from /opt/local/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/multibyte/unicode.rb:72:in `u_unpack'
from /opt/local/lib/ruby/gems/1.8/gems/activesupport-3.0.7/lib/active_support/multibyte/chars.rb:167:in `rindex'
from (irb):7
irb(main):008:0> "™ foo™".mb_chars.index(/\W/)
=> 1
但这很好用。
irb(main):009:0> "® foo®".mb_chars.rindex(/\W/)
=> 1
irb(main):010:0> "® foo®".mb_chars.index(/\W/)
=> 1
【问题讨论】:
标签: ruby ruby-on-rails-3 unicode utf-8