gpt4 book ai didi

c++ - Web 服务器中 utf-8 和 unicode 之间的转换

转载 作者:行者123 更新时间:2023-11-30 05:48:58 25 4
gpt4 key购买 nike

我真的很想知道网络服务器如何将 URL UTF-8 编码字符转换为 unicode。他们如何解决重复 URL 编码和非最短格式 utf-8 代码转换等问题,如解释 here .

例如: http://www.example.com/dir1/index.html?name=%D8%A7%D9%84%D8%A7%D8%B3%D9%85%D8%A7

http://www.example.com/dir1/index.html?name =الاسما

我写了一个 c++ 程序来进行这种转换,但总的来说,我想知道像 apache 或 nginx 这样的网络服务器是如何做到这一点的。

最佳答案

你的意思是做这样的事情:

来自 - Encode/Decode URLs in C++

#include <string>
#include <iostream>

using std::string;
using std::cout;
using std::cin;

string urlDecode(string &SRC) {
string ret;
char ch;
int i, ii;
for (i=0; i<SRC.length(); i++) {
if (int(SRC[i])=='%') {
sscanf(SRC.substr(i+1,2).c_str(), "%x", &ii);
ch=static_cast<char>(ii);
ret+=ch;
i=i+2;
} else {
ret+=SRC[i];
}
}
return (ret);
}

int main()
{
string s = "http://www.example.com/dir1/index.html?name=%D8%A7%D9%84%D8%A7%D8%B3%D9%85%D8%A7";
cout << urlDecode(s);
}

关于c++ - Web 服务器中 utf-8 和 unicode 之间的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com