UNICODE编码

UNICODE宏要定义在最开头
//#define UNICODE
#define _UNICODE
#include<windows.h>//应在所有头文件前包含,它里面有windef文件,该文件中有winnt文件,此文件对应UNICODE,WCHAR,TCHAR,TEXT
#include<stdio.h>
//#include<tchar.h>//对应_UNICODE,wchar,TCHAR,_TEXT
#include<string.h>
int main()
{
    TCHAR *str=TEXT("1你好");
    printf("%s  is %d/n",str,sizeof(*str));
    return 0;
}

 

结果:

在定义了UNICODE时,"1你好"为双字节字符串,用printf输入时,因为遇0x00('/0')结束,所以只会输出1,但1的字节数为2

未定义UNICODE时,就是普通ANSI字符

 

在vs2008中,可以在项目属性中设置字符支持,选“未置”:默认ANSI,选“UNICODE”:系统定义UNICODE宏。

 

你可能感兴趣的:(UNICODE编码)