写伪代码吧
s1 == "  "; //char[]s2 =="中文"; //char[]//unicode 环境下
CString cs;
cs.Format(_T("%s %s"),s1,s2);这样编译没有错误,但是运行后cs的内容是个方框,中文没有出现

解决方案 »

  1.   


    CStringA ansiString;
    char str[] = "广东省";
    char str1[] = "深圳市";
    ansiString.Format("%s-%s", str, str1);
    MessageBoxA(NULL, ansiString, ansiString, MB_OK);
      

  2.   

    用char那样是不行的。
    多字节编码和unicode编码是不一样,不能通用的。
    混在一起就会出现乱码
      

  3.   

    1. s1 = " "; //char[]
       s2 ="中文"; //char[]2. CString cs = (_T"");
       cs.Format(_T("%s %s"),s1,s2);
      

  4.   

    unicode工程,CString format参数用char* 不行啊,要wchar_t嘛.
      

  5.   

    直接使用
    CString cs(s1); 即可
      

  6.   

    cs.Format(_T("%s %s"),s1,s2);
    改为
    cs.Format(_T("%S %S"),s1,s2);