我在用MFC做一个处理页面数据的程序,要对页面内容进行处理
不借助其他程序.要在自身内进行解码操作..请问如何解码
如页面上有一项数据内容如下:
\u4E2D\u592E\u7A7A\u8C03
其实转成中文就是"中央空调"
可是这个转换具体实现代码和思路是什么样的?
那位有这方面的高人能来指点一下?

解决方案 »

  1.   

    wchar_t *s = L"\u4E2D\u592E\u7A7A\u8C03";
    int iLen = WideCharToMultiByte( 54936,0,s,-1,NULL,NULL,NULL,NULL);
    char *p = new char[iLen];
    iLen = WideCharToMultiByte( 54936,0,s,-1,NULL,p,iLen,NULL);
    printf("%s",p);
    delete[] p;
      

  2.   

    wchar_t *s = L"\u4E2D\u592E\u7A7A\u8C03"; 
    int iLen = WideCharToMultiByte( 54936,0,s,-1,NULL,NULL,NULL,NULL); 
    char *p = new char[iLen]; 
    iLen = WideCharToMultiByte( 54936,0,s,-1,p,iLen,NULL,NULL); 
    printf("%s",p); 
    delete[] p;
      

  3.   


    1.char *p = new char[iLen+1];   要为\0分配一个空间2.delete[] p; 貌似用delete p;就可以拉
      

  4.   

    wchar_t *s = L"\u4E2D\u592E\u7A7A\u8C03" 
     这里要写成\\u4E2D\\u592E...这样吧?不要会有警告的..
    但是得到结果都是乱码,,....
      

  5.   

    这是你想的吧?\是一个转义字符,\u即Unicode
    \\u,则就是字符\和u
      

  6.   

    可是我对照您的代码写完编译运行后
    结果P 的值是 u4E2Du592Eu7A7Au8C03
      

  7.   

    wchar_t s[] = {0x4E2D,0x592E,0x7A7A,0x8C03,0x0000}; 
    int iLen = WideCharToMultiByte( 54936,0,s,-1,NULL,NULL,NULL,NULL); 
    char *p = new char[iLen]; 
    iLen = WideCharToMultiByte( 54936,0,s,-1,p,iLen,NULL,NULL); 
    printf("%s",p); 
    delete[] p;
      

  8.   

    atl 里有两个类很好用的
    CA2W ansi to unicode
    CW2A unicode to ansi
      

  9.   


    正解!
    可是我现在是用CString存着\u4E2D\u592E\u7A7A\u8C03的
    基础不好,就是不知道怎么转成wchar_t串
    还要麻烦大家了.