1. ASCII码
规定128个字符的编码,如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。
2、非ASCII编码
英语用128个符号编码就够了,但是为了表示其他语言,128个符号是不够的。欧洲国家对最高位进行了利用,形成了新的编码体系,可以表示最多256个符号。
3、Unicode
Unicode是采用16位编码体系,其字符集内容与ISO10646的BMP(Basic Multilingual Plane)相同。其内容包含符号6811个,汉字20902个,韩文拼音11172个,造字区6400个,保留20249个,共计65534个。Unicode可以用来表示所有语言的字符,且是定长的(便于计算机处理,GB2312/GBK不是定长编码),例如一个英文字母 "a" 和 一个汉字 "好",编码后都是占用的空间大小是一样的,都是两个字节!由于unicode可以用来表示所有字符,所以在很多软件内部是使用unicode编码来处理的,比如java,python。
Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。所以,unicode有多种存储方式,也就是说有许多种不同的二进制格式,可以用来表示unicode。
4.UTF-8
UTF-8是Unicode的实现方式之一。它是一种变长的编码方式,使用1~4个字节表示一个符号。
UTF-8的编码规则:
1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。
Unicode与UTF-8之间的转换,用Notepad.exe
5.GBK
gbk编码用来同时表示繁体字和简体字,相应的gb2312只能表示简体字,gbk兼容gb2312编码。windows版python解析器默认使用gbk编码(这里指内部编码)
规定128个字符的编码,如空格“SPACE”是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。
2、非ASCII编码
英语用128个符号编码就够了,但是为了表示其他语言,128个符号是不够的。欧洲国家对最高位进行了利用,形成了新的编码体系,可以表示最多256个符号。
3、Unicode
Unicode是采用16位编码体系,其字符集内容与ISO10646的BMP(Basic Multilingual Plane)相同。其内容包含符号6811个,汉字20902个,韩文拼音11172个,造字区6400个,保留20249个,共计65534个。Unicode可以用来表示所有语言的字符,且是定长的(便于计算机处理,GB2312/GBK不是定长编码),例如一个英文字母 "a" 和 一个汉字 "好",编码后都是占用的空间大小是一样的,都是两个字节!由于unicode可以用来表示所有字符,所以在很多软件内部是使用unicode编码来处理的,比如java,python。
Unicode只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。所以,unicode有多种存储方式,也就是说有许多种不同的二进制格式,可以用来表示unicode。
4.UTF-8
UTF-8是Unicode的实现方式之一。它是一种变长的编码方式,使用1~4个字节表示一个符号。
UTF-8的编码规则:
1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。
Unicode与UTF-8之间的转换,用Notepad.exe
5.GBK
gbk编码用来同时表示繁体字和简体字,相应的gb2312只能表示简体字,gbk兼容gb2312编码。windows版python解析器默认使用gbk编码(这里指内部编码)