编码
编码
- 编码,文字和二进制之间的一个对照表
1.ascii编码
-
ascii规定使用1个字节(8位)来表示字母与二进制的对应关系
-
2**8=256种对应关系
只包含英文和二进制的对应关系;
2.GBK
-
gb-2312编码,1980年制作
-
gbk编码,对gb2312进行扩展,包含了中日韩等文字(1995)
-
两个字节表示一个汉字
3.unicode
-
unicode也被成为万国码,为全球的每个文字都分配了一个码位(二进制表示)
-
Ucs2
用固定的两个字节表示一个文字
-
Ucs4
用4个字节表示一个文字 2**32种可能;
4.UTF8
-
包含所有文字和二进制的对应关系,全球应用较为广泛。
-
本质上utf-8是对unicode的压缩,用尽量少的二进制去与文字进行对应。
-
中文使用utf8表示,一般是3个字节;
5、Python中的编码
5.1 字节
字符串(str) "啊哈哈哈哈" Unicode处理 一般存在内存(运行内存)
字节(byte) b"ahhhhhhhhh" utf8编码 or gbk编码 一般用于文件的存储
-
# -*- coding: utf-8 -*- ''' @Time : 2021/11/26 9:09 @Author : ziqingbaojian @File : 1.编码.py ''' name="啊哈哈哈哈" print(name.encode("utf8"))#b'\xe5\x95\x8a\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88' print(name.encode("gbk"))#b'\xb0\xa1\xb9\xfe\xb9\xfe\xb9\xfe\xb9\xfe' file_obj=open('log.txt','wb') file_obj.write(name.encode("utf8"))#以字节的形式写入 file_obj.close()#关闭文件