Wince的书上一般说,Wince是用Unicode来编码的。中文在unicode码中也能找到相应的位置。如果用evc4编程,下载到arm装在的wince系统上面去,界面确实是中文。
但是在文本文档中输出 L"宋"这样的字符,却是乱码;经查证,编码为8b5b,是unicode的小尾,乱码;
而在wince系统能显示宋这个字符的是CBCE,为GBK码;
中文的wince系统用的是国标码(GBK),而evc编程或者输出都是用unicode码我想问的问题是,如何才能在英文的wince下面用unicode显示中文呢?
或者在中文系统下显示unicode编码的中文呢?

解决方案 »

  1.   

    用textout好像不会出现你这样的问题吧,如果说是对话框上放一个STATIC用来显示的话,对话框要改成宋体就可以了!!!
      

  2.   

    wince下有精简版的MFC,你在定制启动包的时候打进去就可以了.
    其他编程和PC机区别不大,只要把资源里的语言选定为中文就可以正确的显示.
    我开发了很多应用程序未出现问题,兄弟你再仔细调试一下?PS:evc可以在PC上模拟wince系统,你可以调试好后下载到机器上,免得耽搁时间.
      

  3.   

    现在问题是用file.Write去写一个文本文档,出来是乱码啊CFile file;
    if(file.Open(L"test1.TXT",CFile::modeReadWrite))
    {
    //MessageBox(L"File Open Success");
    }
    else
    {
    file.Open(L"test1.TXT",CFile::modeCreate | CFile::modeReadWrite);
    // MessageBox(L"not exist to create");
    }TCHAR buffer[]=L"宋"; //4个字节
    //buffer[0]=0xfffe;

    //SP-A2文件写入
    file.Write(buffer,sizeof(buffer));
      

  4.   

    看看sizeof(buffer)的大小是多少?
      

  5.   

    TCHAR buffer[]=L"宋"; //4个字节
    //buffer[0]=0xfffe;

    //SP-A2文件写入
    file.Write(buffer,sizeof(buffer));像这样输出宋,用UltraEdit32来查看,为8b5b,乱码
    如果改成TCHAR buffer[]=L"111"; //4个字节
    buffer[0]=0xCBCE;(国标码)

    //SP-A2文件写入
    file.Write(buffer,sizeof(buffer));wince才显示中文,兄弟被此所困久已
      

  6.   

    TCHAR buffer后面加上一个'\0'TCHAR buffer[] = L"宋";
    改为
    TCHAR buffer[] = _T("宋");你看看你的工程定义了UNICODE,_UNICODE
      

  7.   

    结帖,困扰我多天的问题终于解决了哦,实际上windows对于unicode编码的文件有个识别代码,这个简单的地方,我学电子的不知道,晕哦,把程序改为TCHAR buffer[]=L"aaa宋,哈哈太牛鼻了啊";
    buffer[0]=0xfeff; //中文输出的关键,unicode编码文件的识别码file.Write(buffer,sizeof(buffer));这样就可以显示中文了。