【发布时间】:2012-09-17 22:32:56
【问题描述】:
我正在使用 Nokogiri 解析来自一个荷兰站点的一些数据,并将数据保存到 csv 中。但数据显示不正确。例如,在表单 thre 上是 Einddatum1 空白空间,但是当我在保存之前将其打印到控制台时显示为“\u00A0”。其他字符串也无法正确显示,例如“Univ\u00E9 Zorg Geregeld Polis”。
{: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,但这些字符有问题。如何正确编码?
【问题讨论】:
-
您必须将外部编码设置为 UTF-8。我不知道如何用 Nokogiri 做到这一点,但我相信你可以。
-
我在创建 Nokogiri 时设置了编码,但没有任何变化。也许不是 UTF-8?
-
对我来说这看起来就像它应该看起来的样子。 \u00A0 顺便说一句是 在标记中。您可以使用 gsub 将它们从那里取出:str.gsub(/\u00A0/,'')
-
当然可以,但是像
\u00E9这样的其他字符很少。我认为它可以通过某种方法进行转换。 -
\u00E9 是合法的 unicode 字符。你不想改变它。
标签: ruby character-encoding nokogiri