unicode 或 ucs-2 如何转换成汉字?
能否提供实例代码?
-tks
-ed

解决方案 »

  1.   

    转换为ascii码即可
    函数如下:
    int CUnicom::UnicodeToChar(char *UnicodeText, char *ASCText, unsigned char UnicodeLength)
    {
    wchar_t UnicodeWCH[100];
    int MultiLength = 0;
    int WideLength = 0;
    unsigned char SMLength = 0;

    while(MultiLength < UnicodeLength)
    {
    UnicodeWCH[WideLength++] = ((unsigned char )UnicodeText[MultiLength] << 8) 
    + (unsigned char)UnicodeText[MultiLength+1];
    MultiLength += 2;
    }
    UnicodeWCH[WideLength] = 0;

    SMLength = WideCharToMultiByte(CP_ACP, 0, (LPWSTR)UnicodeWCH, WideLength, 
    (LPSTR)ASCText, 161, NULL, NULL); return SMLength;
    }
      

  2.   

    unicode就是为了世界上的所有语言符号而设计的符号集合
    是ascii集合的扩展
    汉字编码是unicode的一部分所以不明白你说的“转换”到底是什么意思?
      

  3.   

    非常感谢 loopyifly(深情咸鱼) 
    :)
      

  4.   

    #include < stdio.h >
    #include < locale.h >
    /*含有setlocale原型*/
    #include < stdlib.h >
    /*含有wcstombs,mbstowcs原型*/
    FILE *f;int i;char abuf[1000];char ubuf[1000];
    void u2a(){
    f=fopen("u.fil","rb");
    /*二进制读文件*/
    i=fread(ubuf,1,1000,f);
    /*读出了i个字节*/
    fclose(f);
    i=wcstombs(abuf,(wchar_t*)(ubuf+2),i-2);
    /*跳过Unicode头,转成的多字节数返到i*/
    f=fopen("a.fil","wb");
    /*二进制写文件*/
    fwrite(abuf,1,i,f);
    /*将写入i个字节*/
    fclose(f);}
    void a2u(){
    f=fopen("a.fil","rb");
    /*二进制读文件*/
    i=fread(abuf,1,1000,f);
    /*读出了i个字节*/
    fclose(f);
    i=mbstowcs((wchar_t*)ubuf,abuf,i);
    /*转成的宽字节数返到i*/
        f=fopen("u.fil","wb");
    fputc(0xff,f);fputc(0xfe,f);
    /*写Unicode头*/
    fwrite(ubuf,1,i*2,f);
    /*一个宽字节占两个字节*/
    fclose(f);}
    void main(){
    setlocale(LC_CTYPE,".OCP");
    /*代码页来自中文95操作系统*/
    u2a();a2u();}
      

  5.   

    他的意思是   汉字的WCHAR 转换为 char(和英文的转换方法不一样)