Curling德国网站交换了具有替换字符的特殊字符

时间:2016-02-16 14:14:38

标签: curl unicode

我正在尝试卷曲这个网址:http://www.mensa.uzh.ch/menueplaene/raemi59_di.html但是无论我尝试什么样的编码技巧组合,所有的变音符号都会被Unicode替换字符换掉�

我不确定如何正确执行此操作或尝试使用哪些标头。谢谢你的帮助!我也不确定调试方法的正确方法,所以如果你能分享一些关于你采取的步骤的见解,我会非常感谢额外的学习!

1 个答案:

答案 0 :(得分:2)

该页面声明它在ISO-8859-1中编码。如果您看到Unicode替换字符,则表示您尝试使用其中一种Unicode编码(很可能是UTF-8)来解释它。因此,问题很简单,无论您何时尝试显示数据,都将数据视为UTF-8,而不是实际情况。

作为一个简单的例子,如果您在命令行中执行此操作,则可以将数据转换为预期的UTF-8,如下所示:

$ curl http://www.mensa.uzh.ch/menueplaene/raemi59_di.html | iconv -f ISO-8859-1

如果您正在使用某种编程语言,请使用任何类似方式将编码从ISO-8859-1转换为UTF-8。

或者,指示您的观众直接将数据视为ISO-8859-1;在HTTP中,您可以通过设置适当的标题来实现:

Content-Type: text/html; charset=iso-8859-1