串口调试乱码,pc正常,到ce却是乱码

ljlin1520 2013-06-06 08:00:23
一个串口扫码设备,扫出的值通过串口显示出来。
在windows下是:


而到了wince6 下却是:



这是为什么呢?为什么呢。。。。求解啊。
...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljlin1520 2013-06-09
  • 打赏
  • 举报
回复
两个老大,帮我看一下吧,我在一个线程中读串
			
while(true)	
{//-------------读串口---------------------
    ReadFile(hCom, &tmp, 64, &cBytes, NULL );
    readQRCStr = en.CharsToCStringUTF8(tmp);
    if(readQRCStr.GetLength() > 0)
    {
	file.Write(tmp, sizeof(tmp));
	SendMessage(my_hwnd,WM_READEDQR, 0, 0);
    }
}
在这转了编码格式,有什么问题么?

CString CharsToCStringUTF8(const char* chars)
{
	int unicodeLen = MultiByteToWideChar(CP_UTF8, 0, chars , -1, NULL, 0);
	WCHAR *pUnicode = new WCHAR[unicodeLen + 1];
	memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));
	MultiByteToWideChar(CP_UTF8,0,chars,-1, pUnicode,unicodeLen);
	CString str(pUnicode);
	delete []pUnicode; 
return str;
}
ljlin1520 2013-06-09
  • 打赏
  • 举报
回复
引用 1 楼 91program 的回复:
因为 CE 下字符的编码都是 Unicode,所以需要转换
那为什么从PC上传来的数据又是对的呢?
ljlin1520 2013-06-09
  • 打赏
  • 举报
回复
引用 1 楼 91program 的回复:
因为 CE 下字符的编码都是 Unicode,所以需要转换
多谢回复,怎么做呢?C++的话?
liangxd09 2013-06-07
  • 打赏
  • 举报
回复
都用16进制显示 就知道了
91program 2013-06-07
  • 打赏
  • 举报
回复
因为 CE 下字符的编码都是 Unicode,所以需要转换

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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