C URL用UTF8字符错误解码
C++ URL decode with utf8 characters error
我可以在C Visual Studio中的编码URL中找到我的问题的任何解决方案。
我有此URL编码的字符串:
//Encoded
%5C%CE%A4%CE%B5%CF%83%CF%84%5C
//Decoded
Τεστ
在任何在线编码器和使用PHP函数的解码器中,上面编码的字符串将为您提供解码的正确字符串,但是在C Visual Studio中,我使用解码URL代码进行的任何尝试失败了。
我在项目中使用Unicode字符设置,然后将此编码的URL检索为:( P.S.我无法更改接收方式 - 它是一个编码的URL std:string(
(std:string EncURL = "%5C%CE%A4%CE%B5%CF%83%CF%84%5C";
然后,我尝试使用Internet的许多解码功能使其可读并使用它,但它总是会返回我的汉字而不是正确的角色。以下是我尝试过的许多功能,并且仅当编码URL内部没有UTF8字符时才起作用。
string url_decode(string src){
string ret;
char ch;
int i,ii;
for(i=0; i<src.length(); i++){
if(int(src[i]) == 37){
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);
}
有人会给我一个很好的方法或解决方案,即使内部有UTF8字符也可以正常工作?std之后使用的任何类型或任何方法:字符串concurl无关紧要,我只需要在C 中适当地urldecoder,用于c 我收到的字符串。
------------更新
我需要转换的原因是从C 内部进行URL打开或FilePath打开(文件夹或文件(的原因,但是编码的URL字符串正如应用程序外部的C 内部编码(数据库,Web,web,Chat,Chat,Chat,文件等(因此,我需要在UTF8中对其进行解码,因为我需要为多语言目的纠正该非拉丁部分,然后出于需要的原因而使用解码的UTF8字符串。
此更新可能有助于仅用于WCOUT或COUT,但对于我的目标puprose而言,我确实需要它,但尚无应有的工作。
预先感谢您
我会回答我的问题,因为我找到了解决方案,并且其他任何人都使用std :: string,并且想要使utf8字符正确。
解决方案是将编码的URL STD :: String转换为STD :: WSTRING,然后使用任何UrldeCoder解码WSTRING。解码的WSTRING始终是正确的,如PHP在线URL编码和解码中所述。因此,您可以根据自己的意愿使用解码的WSTRING。
即使在Windows Console应用程序中,您也可以使用输出Messabox使用WSTRING查看正确的输出
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- 使用公钥加密消息:BER 解码错误
- 将数据包从C++服务器发送到NodeJs服务器时出现MessagePack解码错误
- Opus编码和解码没有错误,但值不同
- 误码率解码错误
- 带有 H264 编解码器的 libav 错误消息。"非严格单调PTS"
- C URL用UTF8字符错误解码
- 致命的Python错误:Py_Initialize:无法加载文件系统编解码器&ModuleNotFoundError
- 媒体基础多音频流文件解码错误
- OPENCV解码灰色代码模式相机校准错误.如何格式化固有和外在结果
- FFmpeg解码和转换RGB sws_scale错误
- huffman解码树的奇怪错误
- 当用户自定义哈希函数在 unordered_map 中时,无法解码 g++ 中模糊的编译器错误
- Base64解码错误
- C++G711编码器-解码器错误
- 加载密钥时出现BER解码错误
- 解码H264帧错误
- STL解码错误c++
- 解码运行时错误(SIGFPE)
- 错误是发送还是接收?未发送完整消息或消息未正确解码