Python--编码解码

    xiaoxiao2021-03-25  127

    1、ASCII(1个字节)

       ASCII(American Standard Code for Information Interchange,美国标准信息交换代码), 是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1。所以,ASCII码最多只能表示 255 个符号。不能满足,非西欧语言(如汉字、日语等)的需要,不能支持我们的国语,这是绝对不能容忍的。

     

    2、 Unicode(分多钟)

      Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码,1994年发布。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定所有的字符和符号最少由 16 位来表示(此处说的的是最少2个字节,可能更多),即:2 **16 = 65536。考虑到优化的问题,Unicode用一些基本的保留字符制定了三套编码方式。它们分别是UTF-8,UTF-16和UTF-32。正如名字所示,在UTF-8中,字符是 以8位序列来编码的,用一个或几个字节来表示一个字符。这种方式的最大好处,是UTF-8保留了ASCII字符的编码做为它的一部分,例如,在UTF-8 和ASCII中,“A”的编码都是0x41.UTF-16和UTF-32分别是Unicode的16位和32位编码方式。考虑到最初的目的,通常说的Unicode就是指UTF-16。

    3、UTF-8(1-4个字节)

      是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存,特殊的、少用的、历史遗留字符用4个字节表示

     

    4、GBK(2个字节)

      GBK全称《汉字内码扩展规范》(GBK即“国标”、“扩展”汉语拼音的第一个字母,英文名称:Chinese Internal Code Specification)

      GBK主要用于支持中文,其文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包含全部中文字符,是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBD大。

    5、相互转换:GBK、GB2312等与UTF8之间都必须通过Unicode编码才能相互转换,否则就会出现乱码,有如下转换途径:   GBK、GB2312--Unicode--UTF8   UTF8--Unicode--GBK、GB2312

    转载请注明原文地址: https://ju.6miu.com/read-19198.html

    最新回复(0)