WinowsXP下读取的汉字传输到WinCE系统下后的显示问题

UUG   2007-9-6 15:33 楼主
我写的一个在winCE下运行的程序显示从WindowsXp系统发过来的读取TXT文件得到的汉字数据,但是总是显示方框,我用MultiByteToWideChar()强制转化后显示“??”,请问如何解决?
代码如下:
Cstring m_no;
        m_no.Format(_T("%c%c%c%c%c%c%c%c"),result[0],result[1],result[2],result[3],result[4],result[5],result[6],result[7]);
        MultiByteToWideChar(CP_ACP,0,(const char*)(LPCTSTR)m_no,8,m_no1,8);
                m_NO=m_no1;
                UpdateData(false);

result[](char数组)为传输过来的汉字数据,
m_NO为窗体中输出文本框变量。

回复评论 (7)

你的wince支持中文吗?
点赞  2007-9-6 16:18
支持 关键的一点忘了说
如果我用“中文文字”这个字符串赋值给m_NO它就能显示,如果用以上格式化的到的字符串就不能显示,就算是用m_no.Format(_T("%c"),‘中’)就显示方框。
还望给点指点
点赞  2007-9-6 16:57
你调试一下,看看result[0],result[1],result[2],result[3],result[4],result[5],result[6],result[7]这几个数组中是中文吗?不行,吧数组类型设置为WCHAR看看
点赞  2007-9-6 19:43
m_no.Format(_T("%c%c%c%c%c%c%c%c"),result[0],result[1],result[2],result[3],result[4],result[5],result[6],result[7]);


//////////////////////////
直接这样做好了
result[8] = 0x00;

m_no = resoult;


//或者
result[8] = 0x00;
MultiByteToWideChar(CP_ACP,0,result,8,m_no,8);
点赞  2007-9-8 11:17
MultiByteToWideChar(CP_ACP,0,(LPSTR)result,-1,m_no,sizeof(resout));
点赞  2007-9-8 11:20
//获取转换后的长度
int len = MultiByteToWideChar(CP_ACP,0,(const char*)result,-1,0,0);
TCHAR* aa = new TCHAR[len + 1];  //分配内存
ZeroMemory(aa, len + 1);
MultiByteToWideChar(CP_ACP,0,(const char*)result,-1,aa,len);

m_NO=aa;
。。。。

delete [] aa;
aa = NULL;
点赞  2007-9-11 11:17
谢谢各位,问题解决了。
点赞  2007-9-11 12:19
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复