0

我正在使用 libcurl 获取 HTML 页面。

我对希伯来语字符有一些问题。

例如这个:סלקום 变得乱码。

我如何获得希伯来语字符而不是乱码?

我需要一些 HTML 解码器吗?

libcurl 是否支持这样的操作?

libiconv 是否支持这样的操作?

我很感激任何帮助。

谢谢

4

1 回答 1

1

编辑:好的,所以你看到的是 UTF-8 数据被解码为 Windows-1252(所以数字字符引用是一个红鲱鱼)。这是 Python 中的演示:

>>> u = ''.join(map(unichr, [1505, 1500, 1511, 1493, 1501]))
>>> s = u.encode('utf-8')
>>> print s.decode('cp1255', 'replace')
׳¡׳�׳§׳•׳�

此问题的解决方案取决于显示输出的环境。仅仅输出接收到的字节并期望它们被解释为字符会导致这样的问题。

HTML 文档通常包含一个标题标签<meta charset=utf-8>,用于向浏览器指示其编码应该是什么。由 Web 服务器提供的文档包含一个 HTTP 标头,例如Content-Type: text/html; charset=utf-8.

您应该向 libcurl 询问Content-TypeHTTP 标头以了解文档的编码,然后使用 iconv 将其转换为系统编码。虽然在您的情况下是代码页 1255,但它取决于用户的系统,因此您应该查找适当的函数来检测它。

(阅读本网站上的Unicode 和字符集以及字符编码标签以获取更多信息。)

于 2010-10-19T18:45:01.717 回答