用memcpy(ptr,"深圳")将中文字符进行copy后得到的ptr是个十六进制数,请问这是什么编码方式?Unicode or GB2312 or...?

解决方案 »

  1.   

    二者好像不是一个概念吧,UNICODE是一种编码方式,GB2312是一个字符集。
    就你上面的,不是UNICODE编码,可能属于GB2312字符集,也可能不是。
      

  2.   

    哈哈~我的理解是不同的编码方式对应不同的字符集。所以本质上应该没有差别!我之所以问这个问题是因为,我通过调用memcpy后(server端),想在client端还原,却不知怎么办?还望指教!!
      

  3.   

    to:jiangh_79_1(微星)server->client 中间传输的是十六进制的字节码,client要根据十六进制数去还原:)
      

  4.   

    具体情况具体分析,有时候GB2312 有时候UTF8
    把 十六进制的字节码 打出来看看,如%等
    默认是GB2312编码
      

  5.   

    程序源码:
    #include "stdafx.h"
    #include <memory.h>
    int main(int argc, char* argv[])
    {
    char * s = "中国";
    unsigned int n = 0;
    memcpy(&n,s,2);
    printf("中 %.8x\n",n);
    memcpy(&n,s+2,2);
    printf("国 %.8x\n",n);
    return 0;
    }输出:中 0000d0d6
    国 0000fab9
      

  6.   

    to:Mackz(在相互)我是准备采用同一种编码方式,但在不知道服务端的编码方式的情况下,客户端该怎样做呢?现在客户端程序得到了一堆十六进制码,不知道该如何是好!!
      

  7.   

    默认用UTF8编码好点,FFFE开头
      

  8.   

    问题解决了
    vc是采用了GB2312字符集