linux下一个中文占3个字节么?
如题,windows下一个汉字,用内码表示,是两个字节。但是linux下好像不同阿?#include<stdio.h>
main(){
unsigned char c;
while((c=getchar())!=EOF){
printf("%d ",c);
putchar(c);
printf("\n");
}
}
我
230
136
145
10 //e
大虾们指点下
先谢过了 跟编码有关 所有的东西,都是字节流,一个接一个的字节。
`我’这个字,utf-8编码是0xe6、0x88、0x91;gb编码就是0xce、0xd2。
看到的只有那两或三个字节,达到无`我’境界,才算入道。
:mrgreen::mrgreen::mrgreen::twisted::twisted::twisted::oops::oops::oops:
又开始胡说八道了,其实我也是才想明白这个。 听君一席话,胜读十年书阿!!!
谢了 别这么说。读十年书很了不起了。大家共同提高。我也是前些日子才刚刚想明白这个东西。
:oops:
(交通灯: :mrgreen::P:oops: ) 不明白。学习~~~ 确实,UTF-8是三字节编码 确实,UTF-8是三字节编码
utf-8 是变长的, cjk这些复杂的字符才用3字节 UTF-8是在标准unicode的基础上改进的。标准unicode编码包含各种语言文字,并将起统一编码,每一个字都占用4Byte的空间,不管是中文还是英文,亦或什么日文韩文……
UTF-8是一种变长的编码,一般一个汉字会使用3Byte的空间,而英文字母(ASIC表前128)就只使用1Byte的空间,这样就大大节省了空间。有兴趣的可以研究以下UTF-8编码标准……
页:
[1]