01.各种编码方式

1.字体文件:包含字符数据编码表

UTF-8是unicode编码方式的一种实现,意思是unicode编码是确定的,一个数字对应一个符号,不同的是UTF-8是对这些数字做一些处理,当是单字节字符时,最高位为0,剩下七位和ascii码一样,多字节怎么处理的百度.
UTF-16LE/UTF-16BE都是unicode编码的一种实现

GB2312 国标码
GBK 国标扩展码
BIG5 港澳台使用的繁体

ANSI编码是字符用ASCII,汉字用GBK
字符数据 就是对应的字符的点阵排列是什么样的.

2.同一个文件以不同编码方式保存,里面所存储的结果不一样

unsigned char *str="abc中";
while(str[i]){
	printf("%2x ",str[i]);
	i++;
}

分别以asc码和UTF-8两种编码方式保存,打印出的结果

61 62 63 d6 d0   //ascii
61 62 63 e4 b8 ad //UTF-8

3.编译程序时要指定输入文件的字符集和输出文件的字符集

gcc  -finput-charset=GBK  -fexec-charset=UTF-8  -o  ansi ansi.c  //指定输入文件的字符集是国标扩展,指定输出文件

比如汉字"中",编写时以GBK保存,编译时的过程为
“d6 d0” ==>编译 ==> “e4 b8 ad”
即编译器会把字符部分以GBK码读出,再翻译成UTF-8的编码格式

编译器会默认以UTF-8来读,在编写时如果以UTF-8来编写程序,那么就不会出现字符乱码的问题…

你可能感兴趣的:(韦东山第三期-电子相框)