我正在构建一个脚本,从一个具有字符编码中断的网站中提取一些数据:
wgetting文件显示它实际上是utf-8,但是字符不对例如,代码页1252中的反勾号为0x91,在此页面中为U+0091。真奇怪。令人惊讶的是,web浏览器似乎能够自动修复这个问题。
我的问题是:哪个工具能帮我清理这个烂摊子?(不是用手!这是一个有数百页的动态网站,我看到了至少六种不同的伪编码。
发布于 2022-04-02 09:23:16
根据“非手工”的含义,iconv可能对您的任务很有用。
将文本从一个字符编码转换为另一个选项-f -编码,- from -code=from-编码用于输入字符的编码。-t to-编码,--to-code=to-编码用于输出字符的编码.
根据我的经验,即使你必须处理错误的编码,康图也能工作。例如,即使输入数据是iso-8859,您也可以告诉康涅夫输入数据是utf-8编码的,因此康涅夫的行为就像输入是utf-8一样。这样,您就可以修复错误编码的数据。
因为iconv可以作为一个过滤器工作,所以可以使用类似于curl的东西来链接它。当您使用wget时,与--output-document -的链接也同样有效。
据我所知,iconv无法检测/猜出正确的输入编码。但取决于输入数据的混乱程度,如果网站有许多不同类型的错误/混合编码,这可能是“不可能的”。如果整个网站都以同样的方式被搞砸了,你应该能够修复它。
https://unix.stackexchange.com/questions/697701
复制相似问题