我遇到两个错误,都围绕编码而且都是相关的。
启动WEBrick时出现的第一个错误(技术上是警告):
/Users/USERNAME/example/config/initializers/bb-ruby.rb:54: warning: invalid Unicode Property \P: /\:\-?\P/
它指的是:/\:\-?\P/,
这只是一些正则表达式,最终是这个块的一部分:
@@tags['Razzing'] = [
/\:\-?\P/,
'<img src="/assets/emoticons/razzing.png">',
'Razzing',
':P',
:razzing]
然后,我在解析一些字符串时也会得到以下错误(可能是由于同一行)......
Encoding::CompatibilityError
incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)
我正在运行Ruby 1.9.2和Rails 3.2.1。
答案 0 :(得分:26)
你的正则表达式被“编译”为ASCII-8BIT。
只需在声明正则表达式的文件顶部添加编码声明:
# encoding: utf-8
你已经完成了。现在,当Ruby解析你的代码时,它将假设你使用的每个文字(Regex,String等)都是用UTF-8编码指定的。
UPDATE: UTF-8
现在是Ruby 2.0及更高版本的默认编码。
答案 1 :(得分:4)
/Pattern/u - stand for UTF-8