解决方案 »

  1.   

    VC6没法支持了,升级编译器用UNICODE
      

  2.   

    你是说软件的问题?
    Unicode,是设置在Unicode字符集下吗
      

  3.   

    如果要显示非中文的语言,由于不同国家的语言ANSI本地编码不是全球统一,在其他国家是无法识别的,Unicode则是全球统一编码,要正常显示多国语言文字,必须使用Unicode,要做到下面两方面:
    1、程序必须是Unicode的
    2、txt或者ini等文件中保存的必须是Unicode编码的文本,由于txt和ini文件默认使用本地的ANSI编码的,即使程序使用Unicode,也没法正常显示的
      

  4.   

    如果txt和ini是我们程序生成的,或者预先设定好的,可以做以下处理:
    1、如果是程序生成的:在文件中加上Unicode头,然后向文件中写入Unicode字符
    2、如果是预先设定好的:可以先将文件另存为Unicode文件,然后再将需要填入的字符拷贝进来
      

  5.   

    话说你就算设置了字符集为 unicode, 读 ansi 的文本文件照样也会读到乱码的
    你首先要做的,是先判断这个文件的编码
    先读文本文件的头2个字节, 如果是 0xff 0xfe 的话, 那你就用 wchar_t* 或 LPTSTR 类型的变量去读数据, 否则用 char* 或 BYTE* 类型去读当然, unicode 编码的文本你也可以用 char 或 BYTE 读出来, 但如果不处理就直接显示的话, 结果就像你所说的那样会乱码
    你可以用 MultiByteToWideChar 来进行 ANSI 转换成 unicode
    相反也可以用 WideCharToMultiByte 来进行 unicode 到 ansi 的转换
      

  6.   

    机子本身有字节顺序,显示是需要进行大小端转化,不知道怎么转化或者代码是什么,没有找到
    转换字节:
    #define REVERSE(x) ((((x) & 0x00FF) << 8 | (((x) & 0xFF00) >> 8)) wchar_t *wTemp = szwBuffer;
        for (; *wTemp != 0x0000; ++wTemp)
        {
            *wTemp = REVERSE(*wTemp);
        }
    在显示大端文件时是乱码,再加上这个字节转化运行之后就什么结果都没有