我有一个程序需要比较字符串和西班牙字符(óáàñ)。
不幸的是,这段代码甚至无法编译:
if str == "Caló"
puts "OK!"
我试图放置
# encoding: utf-8
位于文件顶部,但出现相同的“无效多字节字符(UTF-8)”。
有什么想法吗?
答案 0 :(得分:1)
然后尝试
if str.encode('utf-8') == "Caló"
puts "OK!"
end
或者如果不行则
if str.force_encoding('utf-8') == "Caló"
puts "OK!"
end
答案 1 :(得分:1)
您确定您的文件是UTF-8格式吗?如果你正在使用它,它可能在Windows-1252中。
某些编辑器允许您选择其保存的文件的编码格式。如果是这样,请检查您是否以UTF-8保存。
# encoding
标题不会神奇地转换任何内容,它只会设置如何解释文件。