每次读入两个字节,存放到wchar_t[]中,并在最后增加一个L'0',然后直接显示这个UNICODE字符串即可。注意开始的FF FE要忽略,这是UNICODE文件的标志。

解决方案 »

  1.   

    每次读入两个字节,存放到wchar_t[]中,并在最后增加一个L'0',然后直接显示这个UNICODE字符串即可。注意开始的FF FE要忽略,这是UNICODE文件的标志。
      

  2.   

    请参考以下代码:static unsigned char ucs2encoding(unsigned short unicode, unsigned char *charLength, unsigned char *arrOut)
    {
        /*----------------------------------------------------------------*/
        /* Local Variables                                                */
        /*----------------------------------------------------------------*/    unsigned char status = 1;
        unsigned char index = 0;    /*----------------------------------------------------------------*/
        /* Code Body                                                      */
        /*----------------------------------------------------------------*/
        if (arrOut != 0)
        {        if (unicode < 256)
            {
                arrOut[index++] = *((unsigned char*) (&unicode));
                arrOut[index] = 0;        }
            else
            {
                arrOut[index++] = *((unsigned char*) (&unicode));
                arrOut[index] = *(((unsigned char*) (&unicode)) + 1);        }
            *charLength = 2;
        }
        else
        {        status = 0;
        }    return status;
    }unsigned short Ansii_To_Unicode_String(char *dest, char *src)
    {
        unsigned short count = 0;
        unsigned char charLen = 0;
        unsigned char arrOut[2];    while (*src != '\0')
        {        ucs2encoding((unsigned short) (*((unsigned char *)src)), &charLen, arrOut);        dest[++count] = arrOut[0];
            dest[++count] = arrOut[1];
            src++;
        }    dest[++count] = '\0';
        dest[++count] = '\0';
        return count + 1;
    }unsigned short Unicode_To_Ansii_String(char *dest, char *src)
    {
        unsigned short count = 0;    while (!((*src == 0) && (*(src + 1) == 0)))
        {
            *dest = *(src);        src += 2;
            dest++;
            count++;
        }    *dest = 0;
        return count;
    }