unicode解码问题 本帖最后由 mu77303061 于 2011-04-14 16:24:45 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ...这个是编译错误...和Unicode无关... char out_msg[1024];out_msg=HexStringToUnicode(in_msg);你返回的p是在堆栈上的,返回后就失效了...不能这么干 囧,char out_msg[1024];out_msg=HexStringToUnicode(in_msg);你的数组名还能做l_value ?? 这两句 out_msg=HexStringToUnicode(in_msg); strcpy(m_out,out_msg); p 是static的,应该可以吧。因为我把static却掉它会报错的。 那请问我该怎么做呢?解码出来的wchar_r又该怎么显示出来呢?还有解码出来的东西是该保存在wchar_t数组里再返回还是保存在char数组里呢? char out_msg[1024];strcpy(out_msg, HexStringToUnicode(in_msg));你可以这样做~ 我改成void CUnicodeDlg::OnButtonDecode() { // TODO: Add your control notification handler code here UpdateData(TRUE); char in_msg[1024]; //char out_msg[1024]; memset(in_msg,0,1024); //memset(out_msg,0,1024); strcpy(in_msg,m_in); m_out=HexStringToUnicode(in_msg); //m_out='\0'; //strcpy(m_out,out_msg); UpdateData(FALSE);}之后编译是可以通过但运行输入“4F60597D”输出的却是“恏絙”。所以才搞了char out_msg[1024];out_msg=HexStringToUnicode(in_msg);这种写法的。 for(i=0; i<nSrcLength/4; i++) { wchar[i] = temp[i*2+1] << 8; // 先高位字节 wchar[i] |= temp[i*2]; // 后低位字节 } 需要改成 for(i=0; i<nSrcLength/4; i++) { wchar[i] = temp[i*2] << 8; // 先地位 wchar[i] |= temp[i*2+1]; // 后高位字节 }这样才能实现解码 请教牛人关于COleSafeArray转化为VARIANT 如何去掉CReBar内各band之间的间隔线? 请问联合查询如何取记录集?谢谢 调用一个类的方法是不是class->method(),是不是用->的,还是“.”,->是什么意思? 怎样快速判断两直线段是否部分重叠,如果重叠怎样决定方向是否一致? 如何收集每个收藏夹中的网页长度和日期??? 急问,请指教 很菜的问题:如何区分vs6.0是中文版还是英文版? 请那为高手帮帮忙,能帮我找到一个关于进程的资料吗? 救助:如何用VC实现汽车图片的牌照识别定位 Windows系统没有发出WM_ERASEBKGND消息 基于图像的指纹识别
out_msg=HexStringToUnicode(in_msg);
你返回的p是在堆栈上的,返回后就失效了...不能这么干
char out_msg[1024];
out_msg=HexStringToUnicode(in_msg);你的数组名还能做l_value ??
out_msg=HexStringToUnicode(in_msg);
strcpy(m_out,out_msg);
因为我把static却掉它会报错的。
解码出来的wchar_r又该怎么显示出来呢?
还有解码出来的东西是该保存在wchar_t数组里再返回还是保存在char数组里呢?
strcpy(out_msg, HexStringToUnicode(in_msg));
你可以这样做~
我改成void CUnicodeDlg::OnButtonDecode()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char in_msg[1024];
//char out_msg[1024]; memset(in_msg,0,1024);
//memset(out_msg,0,1024); strcpy(in_msg,m_in); m_out=HexStringToUnicode(in_msg);
//m_out='\0';
//strcpy(m_out,out_msg); UpdateData(FALSE);}之后编译是可以通过但运行
输入“4F60597D”输出的却是“恏絙”。
所以才搞了char out_msg[1024];
out_msg=HexStringToUnicode(in_msg);这种写法的。
{
wchar[i] = temp[i*2+1] << 8; // 先高位字节
wchar[i] |= temp[i*2]; // 后低位字节
}
需要改成
for(i=0; i<nSrcLength/4; i++)
{
wchar[i] = temp[i*2] << 8; // 先地位
wchar[i] |= temp[i*2+1]; // 后高位字节
}这样才能实现解码