我有一个程序需要将字符串与西班牙语字符 (óáàñ) 进行比较。
不幸的是,这段代码甚至没有编译:
if str == "Caló"
puts "OK!"
我试图放置
# encoding: utf-8
在文件的顶部,但出现相同的“无效的多字节字符(UTF-8)”。
任何想法?
那就试试
if str.encode('utf-8') == "Caló"
puts "OK!"
end
或者如果不工作那么
if str.force_encoding('utf-8') == "Caló"
puts "OK!"
end
您确定您的文件是 UTF-8 格式吗?如果您正在使用它,它可能在 Windows-1252 中。
一些编辑器允许您选择它保存的文件的编码格式。如果是这样,请检查您是否保存为 UTF-8。
标# encoding
头不会神奇地转换任何东西,它只是设置如何解释文件。