0

我有一个程序需要将字符串与西班牙语字符 (óáàñ) 进行比较。

不幸的是,这段代码甚至没有编译:

if str == "Caló"
    puts "OK!"

我试图放置

# encoding: utf-8

在文件的顶部,但出现相同的“无效的多字节字符(UTF-8)”。

任何想法?

4

2 回答 2

1

那就试试

if str.encode('utf-8') == "Caló"
    puts "OK!"
end

或者如果不工作那么

if str.force_encoding('utf-8') == "Caló"
        puts "OK!"
end
于 2013-08-28T19:22:28.937 回答
1

您确定您的文件是 UTF-8 格式吗?如果您正在使用它,它可能在 Windows-1252 中。

一些编辑器允许您选择它保存的文件的编码格式。如果是这样,请检查您是否保存为 UTF-8。

# encoding头不会神奇地转换任何东西,它只是设置如何解释文件。

于 2013-08-28T19:25:03.870 回答