代码之家  ›  专栏  ›  技术社区  ›  99miles

升级到Rails 3和Ruby 1.9.2后的多字节转义无效-dtext='[^\\x80]'

  •  3
  • 99miles  · 技术社区  · 14 年前

    我正在将我的应用程序从Rails 2升级到3,当我“需要”这个带有电子邮件地址验证器的文件时,我得到一个“无效的多字节转义”错误:

    dtext = '[^\\\\x80]'
    pattern = /\A#{dtext}\z/
    

    有什么想法吗?

    2 回复  |  直到 12 年前
        1
  •  1
  •   ohaal soulmerge    12 年前

    尝试使用:

    pattern = /\A#{dtext}\z/, nil, 'n'
    

    退房 details on encodings and regexp 更多。

    我使用并推荐这篇很棒的文章 encodings in Ruby .

        2
  •  0
  •   ohaal soulmerge    12 年前

    修改rfc822.rb文件并将addr_spec行更改为以下内容:

    addr_spec = Regexp.new("#{local_part}\\x40#{domain}", nil, 'n')
    

    这应该解决问题。我从另一块宝石那里得到了解决方案,看 https://github.com/saepia/rfc822/blob/master/lib/rfc822.rb