0

我正在阅读网址,它们通常有百分比编码的字符。

示例:%C3%A9 实际上是 é

根据http://www.microsystools.com/products/sitemap-generator/faq/character-percentage-url-encoding/,8位ASCII(128-255)上半部分的字符编码为UTF-8 ,然后它们的字节被保存为十六进制。现在,当我得到我的 URL 时,%HEX 已被重新编码为 8 位 ascii,我需要将它们转换回它们真正的 8 位 ascii。有没有我可以使用的函数/库,或者,我将如何进行转换?

我正在使用 C/C++。

4

1 回答 1

1

首先你需要 URLDecode。不是跨平台 C++ 中可用的函数,但幸运的是,这不是一个难题。将字节从源复制到目标。非 % 字节只是被复制。当你点击 %xx 时,将 XX 从十六进制字符转换为二进制,你就有了你的字节。

这为您提供了一个 UTF-8 文本缓冲区。你说你想要'ASCII'——ISO-646。那么你不能有重音e。对于您真正想要的,我可以想到几种可能性:

  1. ISO-8859-1。您可以使用 ICU 将 UTF-8 转换为 ISO-8859-1。
  2. ISO-646。您也可以使用 ICU,我相信它会将重音字符转换为 ISO-646 等效项。
于 2009-11-22T21:06:29.697 回答