【问题标题】:How to retrieve codepage from cURL HTTP response?如何从 cURL HTTP 响应中检索代码页?
【发布时间】:2011-06-22 14:38:57
【问题描述】:

我使用 lib-cURL 作为 HTTP 客户端来检索各种页面(可以是任何 URL)。
通常数据以 UTF-8 字符串的形式出现,然后我只需调用“MultiByteToWideChar”就可以了。

但是,一些网页仍然使用代码页编码,如果我尝试将这些网页转换为 UTF-8,我会看到乱码。

有没有一种简单的方法可以从数据中检索代码页?或者我必须手动扫描它(对于“encoding=”),然后进行相应的翻译。

如果是这样,我如何从名称 (Code Page Identifiers) 中获取代码页 ID?

谢谢,
奥马尔

【问题讨论】:

    标签: c++ http unicode curl


    【解决方案1】:

    文档可以在多个位置声明其编码:

    • Content-Type HTTP 标头
    • (可选)XML 声明
    • 文档标题内的Content-Type 元标记
    • 对于 HTML5 文档,charset 元标记。

    我可能忘记了更多。

    最后,检测实际编码是相当困难的。您真的不应该自己这样做,而是使用高级库来检索和解析 HTML 内容。我确信它们甚至可用于 C++,即使它们必须从浏览器环境中窃取。 :)

    【讨论】:

    • 感谢您提供的信息,我不知道它会出现在这么多地方。然而它对我来说不是很有效,我正在创建一个可以允许 JS 代码执行跨域 HTTP 请求并最终以纯文本形式接收他的请求的本机主机。我将不得不解析整个 HTML 文档并寻找那些标签,只是为了将其转换为可读的文本 - 听起来有点贵(运行时明智)。但是找到了一个不错的 COM 接口,可能会有所帮助msdn.microsoft.com/en-us/library/aa741001(v=vs.85).aspx
    【解决方案2】:

    我在IMultiLanguage2 interface 中使用了 DetectInputCodepage,效果很好!

    【讨论】:

      猜你喜欢
      • 2021-08-09
      • 1970-01-01
      • 2020-10-15
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-19
      相关资源
      最近更新 更多