// UCS2解码
// pSrc: 源编码串指针
// pDst: 目标字符串指针
// nSrcLength: 源编码串长度
// 返回: 目标字符串长度
int CUnicodeToStringDlg::UnicodeToString(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
int nDstLength; // UNICODE宽字符数目
WCHAR wchar[1024]; // UNICODE串缓冲区
// 高低字节对调,拼成UNICODE
for(int i=0; i<nSrcLength/2; i++)
{
// 先高位字节
wchar[i] = *pSrc++ << 8;
// 后低位字节
wchar[i] |= *pSrc++;
}
// UNICODE串-->字符串
nDstLength = ::WideCharToMultiByte(CP_ACP, 0, wchar, nSrcLength/2, pDst, 160, NULL, NULL);
// 输出字符串加个结束符
pDst[nDstLength] = '\0';
// 返回目标字符串长度
return nDstLength;
}
char pDst[1024]="";
unsigned char pSrc[1024]="4E2D56FD";
UnicodeToString(pSrc,pDst,8);
这里调用后怎么pDst的值不是“中国”两字的,而是4个问号的??该如何让接收到的4E2D56FD变为“中国”两字呢,请帮忙!
解决方案 »
- 如何动态创建一个对话框并显示出来?不需要用资源
- 基于CEditView的试图中如何实现关键字高亮?
- char转byte
- 在线等候~~~有关Edit控件在CFormView中编辑无法使用Ctrl-C,和Ctrl-V的问题
- vc2005为edit控件关联变量的问题
- 关于如何使用Source insight浏览MFC基础类的源代码?
- 使用nmake -f makefile.make 结果仅执行了里面的第一个命令,求解
- 【程序随Vista启动问题】加入到启动项中会被Block掉
- 在SIM卡中Envelope是什么,它的定义是什么,它有什么用处?
- 关于CStringArray的问题
- MFC activex在ie中加载问题!
- 菜鸟程序员问一个感觉非常重要的问题
unsigned char pSrc[1024]= {0};
pSrc[0] = 0x4E;
pSrc[1] = 0x2D;
pSrc[2] = 0x56;
pSrc[3] = 0xFD;
UnicodeToString(pSrc,pDst,4);
MessageBox(pDst);