文章目录
- 初识编码
- 单位的转化
- 编码的转化
- python3文件编码的流程
-
初识编码
- 字符是组成字符串的最小组成元素, "a"是字符, "中"也是字符
- ascii: 8bit(1字节)表示一个字符, 包含字符少, 数量不够用
- 万国码(unicode): 32bit表示一个字符, 浪费资源(改版前为 16bit 表示一个字符)
- UTF-8: 最少用8bit来表示一个字符, 英文用8bit, 欧洲用16bit, 亚洲用24bit
- GBK: 一个英文用8bit, 一个中文用16bit, 国标, 限中国使用, 仅包含中文和英文
单位的转化
| 转换前 | 转换后 |
|---|
| 8 bit | 1 bytes |
| 1024 bytes | 1KB |
| 1024 Kb | 1MB |
| 1024 MB | 1GB |
| 1024 GB | 1TB |
| 1024 TB | 1PB |
编码的转化
- 不同编码之间的二进制是不能相互识别的
- python3x中, 为了避免乱码, str内部编码方式(内存编码方式)是unicode
- 文件的存储和传输使用bytes, 不能使用unicode, 因为它占位太多
python3文件编码的流程
表现形式
- “abc” 字符串形式
- b"\xe9\xa3\x9e\xe6\x9c\xba" bytes类型
转换实例
a = "飞机"
ret = a.encode('utf-8')
print(ret)
ret = a.encode('gbk')
print(ret)
b = b'\xe9\xa3\x9e\xe6\x9c\xba'
ret = a3.decode('utf-8')
print(ret)
c = b'\xb7\xc9\xbb\xfa'
ret = a4.decode('gbk')
print(ret)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!