int _tmain(int argc, _TCHAR* argv[])
{
char str[] = "我";
char *p = str;
while (*p)
{
printf("%d ",*p);
p++;
}
}
上面代码在中文Windows xp 显示为 -50 -46
而在英文的Windows server 2003上显示 -89 -38
我查了下汉字“我”的GB编码为4650,这说明中文 xp是对应的,而英文2003 server咋出来了-89 -38呢
{
char str[] = "我";
char *p = str;
while (*p)
{
printf("%d ",*p);
p++;
}
}
上面代码在中文Windows xp 显示为 -50 -46
而在英文的Windows server 2003上显示 -89 -38
我查了下汉字“我”的GB编码为4650,这说明中文 xp是对应的,而英文2003 server咋出来了-89 -38呢
是不是跟UNICODE有关
CED2 //我 windows下的utf16
1162
如果用utf-8与ansi(默认),那也是不一样的
另外我在Windows Server2003下(公司的开发机上英文版)测试了一下,输出就是50 46,而不是89 38
因为那个英文windows server 2003没有gb的中文字符集,只有big5的字符集
应该是这个原因吧