我把"中文"赋值给一个CString s,按道理s中的值应该是Unicode编码的,也就是4E 2D 65 87,可是跟踪时却发现s为D6 D0 CE C4,还是GB2312编码.根本就没有用Unicode.#ifndef _UNICODE
#define _UNICODE
#endifCString s;
s=_T("中文");为何s没有用Unicode表示"中文"??

解决方案 »

  1.   

    L("中文")或在afx.h最前面定义_UNICODE
      

  2.   

    哈哈,问题已解决,谢谢coppemine
      

  3.   

    这说明_UNICODE宏并没有产生效果,中文字符串还是作为GB2312进行编码。
    把UNICODE加到project的Preprocessor definitions设置中去就行了。
      

  4.   

    就是说,#define _UNICODE不能在程序中出现.那如果我需要某个字符串是unicode,而其它串还用GB,那怎么办?
      

  5.   

    你可以使用MultiByteToWideChar和WideCharToMultiByte进行两者的转换。
      

  6.   

    你可以用WideCharToMultiByte和MultiByteToWideChar进行两者的转换。