因此,我正在尝试使用 nokogiri从某个网站上进行一些屏幕抓取,但网站所有者未能在<meta>
标签中指定页面的正确编码。这样做的结果是我正在尝试处理认为它们是 utf-8 但实际上不是的字符串。
(如果你在乎,这里是我用来测试的文件:
- 主文件:http ://dpaste.de/nif5/
- ann.html:http ://dpaste.de/YsLM/
- ann2.html:http ://dpaste.de/Lofi/
- ann3.html:http ://dpaste.de/R21j/
- ap.html:http ://dpaste.de/O9dy/
- 输出:http ://dpaste.de/WdXc/
)
在进行了大量搜索之后(这个 SO question特别有用),我发现调用encode('iso-8859-1', 'utf-8')
该测试字符串“有效”,因为我得到了一个正确的 © 符号。现在的问题是,我想要的其他一些字符串中还有其他字符在转换为拉丁编码时确实不起作用(Shōta
例如,变成Sh�\x8Dta
)。
现在,我可能会打扰相应的网站管理员并尝试让他们修复他们该死的编码,但与此同时,我希望能够使用我拥有的字节。我相当肯定有一种方法,但我无法终生弄清楚它是什么。