2013-08-28 84 views
0

我有一個程序需要比較字符串與西班牙字符(óáñ)。Ruby比較非拉丁字符

不幸的是這碼甚至不編譯:

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

我試圖把

# encoding: utf-8 

在文件的頂部,但同樣的「無效的多字節字符(UTF- 8)'出現。

有什麼想法?

回答

1

嘗試然後

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

或者如果不工作,那麼

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

謝謝一堆〜這做到了!「! – mors

1

你確定你的文件是UTF-8格式?它可能在Windows-1252中,如果這就是你正在使用的。

某些編輯器允許您選擇它保存的文件的編碼格式。如果是這樣,請檢查您是否使用UTF-8保存。

# encoding頭不會神奇地轉換任何東西,它只是設置如何解釋文件。