用于String的Ruby未定义方法`encode'

时间:2012-10-27 20:42:01

标签: ruby

我正在尝试使用this代码(ruby 1.8.7):

line = "abc" 
"#{line}☃".encode('utf-8')[0..-2].scan(/\p{Katakana}/)

但它会返回undefined method 'encode' for "abc\342\230\203":String (NoMethodError)

您可以在此处运行该程序:http://codepad.org/nh6cAqHT

1 个答案:

答案 0 :(得分:10)

您可能正在使用旧版本的ruby。这是available in 1.9.3 但是not in 1.8.7,请检查您正在使用的版本。

1.9.3p194 :001 > line = "abc"
 => "abc" 
1.9.3p194 :002 > "#{line}☃".encode('utf-8')[0..-2].scan(/\p{Katakana}/)
 => [] 

工作正常。