2.1字符编码相关知识点简介

unicode码:只是规定了什么数值表示什么字符;仅定义了一个映射表,没有具体的编码,如何存储字符就是编码。

1.有多种方式可以表示unicode码。

测试:abc中保存为下面四种方式。

ascii码:         中国大陆默认是GB2312。

utf-8:EF BB BF 最常用的编码方式。前三个字节表示utf-8编码。

utf-16le;FF FE

utf-16be: FE FF

2.为什么有多种方式来表示unicode码?

因为会造成字节浪费。


3.utf-8简要讲解。

最大的特点:它是一种变长的编码方式,可以使用1~4个字节来表示一个符号;根据不同的字符而改变字节的长度。

1)

对于单字节而言:字节的第一位设为0,其余7位是字符的unicode码。

对于英文字母:和ascii码相同。

2)对于n(n>1)字节的符号,前n为设为1,n+1为设为0;后面字节前两位设为10,剩下未提及到的都是unico码。

可以写一个简单的测试代码测试"abc中",同时保存为ascci和utf-8格式


注意:linux下测试需要对变量进行初始化为0;

测试发现:直接编译运行后ascci的编码不对。

为何?

因为默认是以utf-8解析的。

如何解决?

man gcc

搜索 /charset

得出编译时需要制定输入输出字符集,默认是utf-8解析的。

-finput-char=charset -fexec-charset=charset

输入字符集 输出字符集(程序执行是以什么编码执行的)










猜你喜欢

转载自blog.csdn.net/qq_34738528/article/details/77608498