请问\x5d14是什么编码,还有代码详解.(代码详解的80) --QT/C++(小白第一次提问)

老崔涮肉坊 2017-03-30 05:30:16
接的是别人项目,那位离职了,我刚毕业学习的C,对这个不太了解,进入正题:
将对话框中的username和password记录下来,加上url访问服务器.但是中文的不识别,将username记录到config.ini中之后得到的是\x5d14这样的编码,但是英文是正常的.他的数字和utf8和ascll码是一样的但是为啥是\x.这是什么编码
恳请各位大神告知小弟
void Byte2Hex(const unsigned char* src, int len, char* dest) {
for (int i=0; i<len; ++i) {
sprintf_s(dest + i * 2, 3, "%02X", src[i]);
}
}
QString upjm(const QString& username, const QString& password)
{
char mw[512] = {0}, jm[512] = {0}, hex[1024] = {0};
int len = 0;
mw[len] = username.length();
len++;
memcpy(mw+len, username.toLocal8Bit(), username.length());
len += username.length();

mw[len] = password.length();
len++;
memcpy(mw+len, password.toLocal8Bit(), password.length());
len += password.length();

AES_KEY aes;
AES_set_encrypt_key((unsigned char*)"0123456789abcdef", 128, &aes);
for(int i = len; i < sizeof(mw); i++){
mw[i] = rand()%256;
}
len = (len+15)/16*16;
int tmp_len = 0;
while(tmp_len<len){
AES_encrypt((unsigned char*)mw+tmp_len, (unsigned char*)jm+tmp_len, &aes);
tmp_len += 16;
}
Byte2Hex((unsigned char*)jm, len, hex);
return QString(hex);
//return qUtf8Printable(hex);

}
...全文
321 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
失散糖 2017-03-31
  • 打赏
  • 举报
回复
前缀是0x也好是\x也好是&#x也好,这些并不是什么编码,但是都当成utf16的十六进制编码就行了。 0x5d14转换成utf8之后的十六进制编码是E5 B4 94。 至于在文件中出现这种写法,大概是转义字符,或者是借鉴的转义字符的思路,为了能在不支持汉字的框架里面传递汉字罢了。
老崔涮肉坊 2017-03-31
  • 打赏
  • 举报
回复
别沉别沉别沉。各位大神帮帮忙吧 。
老崔涮肉坊 2017-03-30
  • 打赏
  • 举报
回复
感谢回帖, 这是utf16编码么?汉字是"崔". utf8和utf16对应的编码是一样的么?我在网上转的utf8结果是崔 为什么数字会一样?
失散糖 2017-03-30
  • 打赏
  • 举报
回复
utf16? \x5d14就是0x5d14,“崔”?
老崔涮肉坊 2017-03-30
  • 打赏
  • 举报
回复
这应该也不是16进制对应的汉字吧/?

16,248

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧