汉字不一定就是unicode编码 ,你所看到的汉字是GB2312编码
在ASCII体系下,如果系统读取字符串时某个字节的值大于161(0Xa1),并且下一个字节的值大于176(0Xb0),那么系统会认为这是一个汉字的GB2312双字节编码,然后查询码表显示汉字
比如下面这个程序,运行后会显示“中文”两个字,因为数组a的值恰恰符合GB2312编码
#include
int main()
{
char a[5]={214,208,206,196,0};
printf("%s\n",a);
return 0;
}
因为你的源文件就是ASCII码,你的操作系统默认是按照ASCII码保存的。
你用ASCII方式读出来的内容,保存到变量里。然后再在中文系统里显示出来,是没有问题的。
先确保你的文件是Unicode码的。