分页: 1 / 1

一个汉字占3个字符长度?

发表于 : 2012-03-30 14:49
billcalendar
今天学习文件I/O流时发现,一个汉字竟然占3个字符长度。。。这怎么解释?

代码: 全选

#include <stdio.h>
int main()
{
	char b[200];
	FILE *a=fopen("aa","r");
	//if (a==NULL)
	//	printf("Wrong\n");
	b[0]=fgetc(a);
	b[1]=fgetc(a);
	b[2]=fgetc(a);
	b[3]=fgetc(a);
	b[4]=fgetc(a);
	b[5]=fgetc(a);
	b[6]=fgetc(a);
	if(fgetc(a)==EOF) printf("End\n");
	printf("%s",b);
	fclose(a);
	return 0;
}
aa文件的内容是2个汉字,没有回车。

Re: 一个汉字占3个字符长度?

发表于 : 2012-03-30 15:06
redhatlinux10
取决于你采用的什么编码。汉字在GB编码中占用2个字节,在UTF-8中占用3个字节。

Re: 一个汉字占3个字符长度?

发表于 : 2012-03-30 15:29
billcalendar
redhatlinux10 写了:取决于你采用的什么编码。汉字在GB编码中占用2个字节,在UTF-8中占用3个字节。
是不是所有汉字在UTF-8中都占用3个字节?

Re: 一个汉字占3个字符长度?

发表于 : 2012-03-30 15:32
xw_y_am
billcalendar 写了:
redhatlinux10 写了:取决于你采用的什么编码。汉字在GB编码中占用2个字节,在UTF-8中占用3个字节。
是不是所有汉字在UTF-8中都占用3个字节?
yes :em03 :em03

Re: 一个汉字占3个字符长度?

发表于 : 2012-03-31 0:00
chenxing
billcalendar 写了:
redhatlinux10 写了:取决于你采用的什么编码。汉字在GB编码中占用2个字节,在UTF-8中占用3个字节。
是不是所有汉字在UTF-8中都占用3个字节?
部分罕见汉字可占四个字节