Python笔记整理5: 第五章 编码问题

第五章 编码问题

“”"
一、字符集

a="A"
a=b"A"
 计算机中存储只是0101二进制代码
 字符集: 一堆字符的集合,用来制定当前的字符映射成计算机中存储的ascii规则

二、常见的字符集举例

(一)ascii码

    只采用8个数据位来进行编码
    a-97
    b-98
    
    参见ASCII码图

(二) gb2312 简体中文编码集  

    使用两个字节存储
     所有的字符集对于原有ascii中已有字符都遵从ascii码字符集
     big5台湾
     GBK 中文、韩文、日文 亚洲
     
(三) unicode编码集 

    将所有语言都统一到一套编码里。
     定长存储:浪费资源,访问传输速度快
     汉字2-4个字节存储

(四) utf-8编码

     变长存储:省资源
     汉字3个字节 ,英文字母就只使用1个字节
    
     字符串
     字节
     在python中
     字符串支持字符集unicode
     字节的字符集ascii
     a="我爱中国"
     b=b""

(五) unicode和utf-8

    1. unicode的显示
        a="中"
         ord()返回对象对应的整数存储
        print(ord(a))
         20013
        
         chr() 将整数存储转换成字符
        print(chr(20013))
         中
        
         十六进制
        print(hex(20013))  0x4e2d  \u4e2d
         0x4e2d
        
        print("\u4e2d")
         中
    2. utf-8字符集显示
         使用字符串下encode方法
        a="中"
        print(a.encode())
        
         unicode二进制
        print(bin(20013))  
        0b100111000101101
        
         utf-8二进制
        print(bin(0xe4),bin(0xb8),bin(0xad),sep="")  
         111001000b101110000b10101101
        
                10011100  0101101
         111001001011100010101101

         (1)关系:
        unicode字符集和utf-8字符集二进制编码有一部分是重复的
        
         (2)存储
         在计算机中内存统一使用unicode编码集,当需要保存到硬盘,做传输的时候,转换成utf-8的模式。
         浏览网页的时候,服务器把动态生成的unicode内容转换成utf-8字符集传输到浏览器。
         
         内存 、io、控制器、计算处理器、磁盘

三. 字节和字符串之间的转换

 字符串转换成字节   编码  字符串.encode
 字节转换成字符串   解码  字节.decode
 
s="我爱你中国123"
 encoding: 指定字符集,默认是utf-8
print(s.encode())
print(s.encode("gbk"))
 b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0\xe4\xb8\xad\xe5\x9b\xbd123'
 b'\xce\xd2\xb0\xae\xc4\xe3\xd6\xd0\xb9\xfa123'

b=b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0\xe4\xb8\xad\xe5\x9b\xbd123'
print(b.decode())
 我爱你中国123

print(b.decode("gbk"))
 UnicodeDecodeError: 'gbk' codec can't decode byte 0xbd in position 14: illegal multibyte sequence

“”"

发布了254 篇原创文章 · 获赞 97 · 访问量 12万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览