2012-09-17 38 views
1

我使用Nokogiri解析荷蘭站點的一些數據,並將數據保存到csv中。但數據沒有正確顯示。例如在窗體上是Einddatum1空白空間,但是當我在保存之前將它打印到控制檯中時顯示爲「\ u00A0」。其他字符串也不正確顯示,例如「Univ \ u00E9 Zorg Geregeld Polis」。Ruby中的字符編碼

{:Bsn=>"112511111", 
:Verzekerde=>"VerzekerdeAHM Andes-Faasse", 
:Pakketnaam1=>"Univ\u00E9 Zorg Geregeld Polis", 
:Verzekerdennummer1=>"1234987654", 
:Begindatum1=>"01 jan 2012", 
:Einddatum1=>"\u00A0", 
} 

也許這html頁面的標題可能是相關的:

<!doctype html> 
<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --> 
<!--[if lt IE 7 ]> <html class="no-js ie6" lang="en"> <![endif]--> 
<!--[if IE 7 ]> <html class="no-js ie7" lang="en"> <![endif]--> 
<!--[if IE 8 ]> <html class="no-js ie8" lang="en"> <![endif]--> 
<!--[if (gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]--> 
<head id="Head1"><meta charset="utf-8" /> 

    <!-- Always force latest IE rendering engine (even in intranet) 
     Remove this if you use the .htaccess --> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /><title> 
    Verzekeringsrecht controleren 
</title><meta http-equiv="cache-control" content="no-cache" /><meta http-equiv="content-language" content="nl-NL" /> 

它接縫像它的UTF-8,但有問題,這些字符。如何正確編碼它們?

+0

您必須將外部編碼設置爲UTF-8。我不知道如何用Nokogiri做到這一點,但我相信你可以。 – Linuxios

+0

我在創建Nokogiri時設置了編碼,但沒有任何變化。也許它不是UTF-8? –

+0

對我來說,它看起來應該是什麼樣子。 \ u00A0 btw是標記中的 。你可以用它們把它們放在那裏:str.gsub(/ \ u00A0 /,'') – pguardiario

回答

1

那麼該行會讀:Pakketnaam1=>"Univé Zorg Geregeld Polis",

是,什麼是應該在那裏,你的控制檯編碼只是沒有那麼Ruby的定義不知道如何打印時,它們顯示Unicode字符或應該有一些更文本?

+0

這正是應該有的。這不是關於控制檯的問題,但是在將其保存到csv後,它不會以正確的方式保存。 –

+0

@ИванБишевац可能會正確寫入CSV。確保您使用UTF-8編碼打開它。 – Trejkaz