Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url 百分比编码UTF-8到Ascii(8位)转换_Url_Utf 8_Ascii_Url Encoding - Fatal编程技术网

Url 百分比编码UTF-8到Ascii(8位)转换

Url 百分比编码UTF-8到Ascii(8位)转换,url,utf-8,ascii,url-encoding,Url,Utf 8,Ascii,Url Encoding,我在读URL,它们通常有百分比编码字符 示例:%C3%A9实际上是 根据,8位ASCII(128-255)上半部分的字符被编码为UTF-8,然后它们的字节被保存为十六进制。现在,当我得到我的URL时,%十六进制已经重新编码为8位ascii,我需要将它们转换回真正的8位ascii。是否有我可以使用的函数/库,或者,我将如何进行转换 我用的是C/C++。首先你需要解码。不是跨平台C++中可用的函数,但幸运的是,不是一个难题。将字节从源复制到目标。仅复制非-%字节。当您点击%xx时,将xx从十六进制字

我在读URL,它们通常有百分比编码字符

示例:%C3%A9实际上是

根据,8位ASCII(128-255)上半部分的字符被编码为UTF-8,然后它们的字节被保存为十六进制。现在,当我得到我的URL时,%十六进制已经重新编码为8位ascii,我需要将它们转换回真正的8位ascii。是否有我可以使用的函数/库,或者,我将如何进行转换


我用的是C/C++。

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

这将为您提供UTF-8格式的文本缓冲区。你说你想要“ASCII”——ISO-646。那你就不能用重音e了。我可以为你真正想要的东西想出几种可能性:

  • ISO-8859-1。您可以使用ICU将UTF-8转换为ISO-8859-1
  • ISO-646。您也可以使用ICU,我相信它会将重音字符转换为ISO-646等效字符

  • 这是今天第二次有人谈论8位ascii。。那是什么?ASCII使用7位。Latin1(以及一大堆其他字符集)使用8位,通常是ASCII的超集,但出于这个原因,我不会称它们为“8位ASCII”,所以。。“8位ASCII”是什么意思?常规字符。