程序员需要知道的编码

C语言在以前默认使用ascll编码,现在的c语言底层添加了多种编码支持 ,不单单使用ascll码,Java和Python默认使用unicode编码。
什么是ASCLL码:
一种编码的规则。计算机给每个字符给予一个编号,不同的编号代表不同的字符。ascii只对英文和符号进行编码,每个字符占用一个字节,编码直接以8位二进制存储,其中第一位二进制为固定值0,后面7位二进制一共可以表达128个字符。还有一种扩充版的ascll码,但是很少用,取消第一位的固定值0,8位二进制一共可以表达256个字符。
什么是unicode编码:
最初的unicode编码是固定长度的,16位,也就是2两个字节代表一个字符,这样一共可以表示65536个字符。显然,这样要表示各种语言中所有的字符是远远不够的。Unicode4.0规范考虑到了这种情况,定义了一组附加字符编码,附加字符编码采用2个16位来表示,这样最多可以定义1048576个附加字符,目前unicode4.0只定义了45960个附加字符。 Unicode 为世界上所有字符都分配了一个唯一的数字编号,这个编号范围从 0x000000 到 0x10FFFF (十六进制)。unicode编码的表示和存储是分开的,在编写的代码里字符是以unicode编码表示的,存储在文件中字符是以utf-8存储的,如果一个unicode字符直接以unicode编码值存储会占用很多空间(这里需要占用3个字节),为了节省空间,出现了很多种储存方案,有 UTF-8,UTF-16,UTF-32。切确的说,程序的底层函数所返回的unicode码值和源代码是以什么编码格式储存在文件中是不同的,所以unicode和utf-8是不同的。utf-8字节数可变,这个变化是根据 Unicode 编号的大小有关,编号小的使用的字节就少,编号大的使用的字节就多。使用的字节个数从 1 到 4 个不等。当utf-8字符占一个字节的时候,该字节的第一位设为 0,后面的7位为这个字符的 ascll码,因此对于英文字母,UTF-8 编码和 ASCII 码是相同的。unicode编码和utf-8编码都是兼容ascll码的。
什么是url编码:
url编码使用两位十六进制值表示,前面加上%号,而正常的十六进制值在前面加上0x。url编码是为了解决特殊符号在html协议传递参数上产生的歧义,对于普通的字符,默认是在ascii码或者是utf-8的基础上添加%。

猜你喜欢

转载自blog.csdn.net/qq_38022367/article/details/114630906