Ruby比较非拉丁字符

时间:2013-08-28 19:19:38

标签: ruby encoding

我有一个程序需要比较字符串和西班牙字符(óáàñ)。

不幸的是,这段代码甚至无法编译:

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

我试图放置

# encoding: utf-8

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

有什么想法吗?

2 个答案:

答案 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标题不会神奇地转换任何内容,它只会设置如何解释文件。