问题遇到的现象和发生背景
前端传过来的中文参数是%3D%E9%98%BF%E8%90%A8%E8%BE%BE%26,需要将这个参数转换为中文
问题相关代码,请勿粘贴截图
#include "stdafx.h"
#include <iostream>
#include < codecvt>
#include <locale>
std::string unicodeToString(const std::string &str) {
std::string u8str ;
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> converter;
for (size_t i = 0; i < str.length(); ) {
char32_t uhan = strtol(str.substr(i,4).c_str(), nullptr, 16);
u8str += converter.to_bytes (uhan);
i+=4;
}
return u8str;
}
int main() {
std::cout << unicodeToString( "4F 60597D554A" ) << std::endl ;
return 0;
}
运行结果及报错内容
我的解答思路和尝试过的方法
在网上试了好多方法,要么是代码报错,要么就是解析出来的是乱码