各位高手,请问VC中如何实现汉字的Unicode编码转换成Char类型。为什么利用WSTOMB可以实现英文的转换,而不能实现汉字的转换。该怎么办。有知道的请及时告诉,谢谢。

解决方案 »

  1.   

    char sz[100];
    sprintf(sz,"%s",L"aaaaaaaaaaa");
      

  2.   

    WideCharToMultiByte?The WideCharToMultiByte function maps a wide-character string to a new character string. The new character string is not necessarily from a multibyte character set. 
    int nSize = ::WideCharToMultiByte(CP_ACP,0,strName,-1, lpszName, 257, NULL, NULL);
      

  3.   

    两种方法:1、CString 2、_bstr_t#include "comutil.h"
    //注意在Project-》Setting-》Link中加入comsupp.lib,从而使_bstr_t可用void CAaaDlg::OnButton1() 
    {
    // TODO: Add extra cleanup here
    _bstr_t a(L"sdfsafds");
    a+="zzz";
    char * b = (char *)a;//获得内部BSTR的char*指针,勿做修改和释放
    WCHAR *c=(WCHAR *)a;//获得内部BSTR的WCHARr*指针,勿做修改和释放
    CString p = L"asdfsa";
    p+="ppp";
    WCHAR *y =p.AllocSysString(); //获得WCHAR*指针,使用完请释放,否则有内存泄漏。
    char *z = p.GetBuffer(p.GetLength()+1);//内部Buffer指针,z不要释放 ::SysFreeString(y);}