认识编码

文章目录

  • 初识编码
  • 单位的转化
  • 编码的转化
  • python3文件编码的流程
    • 表现形式
    • 转换实例


初识编码

  • 字符是组成字符串的最小组成元素, "a"是字符, "中"也是字符
  • ascii: 8bit(1字节)表示一个字符, 包含字符少, 数量不够用
  • 万国码(unicode): 32bit表示一个字符, 浪费资源(改版前为 16bit 表示一个字符)
  • UTF-8: 最少用8bit来表示一个字符, 英文用8bit, 欧洲用16bit, 亚洲用24bit
  • GBK: 一个英文用8bit, 一个中文用16bit, 国标, 限中国使用, 仅包含中文和英文

单位的转化

转换前转换后
8 bit1 bytes
1024 bytes1KB
1024 Kb1MB
1024 MB1GB
1024 GB1TB
1024 TB1PB

编码的转化

  1. 不同编码之间的二进制是不能相互识别的
  2. python3x中, 为了避免乱码, str内部编码方式(内存编码方式)是unicode
  3. 文件的存储和传输使用bytes, 不能使用unicode, 因为它占位太多

python3文件编码的流程


表现形式

  • “abc” 字符串形式
  • b"\xe9\xa3\x9e\xe6\x9c\xba" bytes类型

转换实例

# 内存中编码格式为 unicode
a = "飞机"# str -> utf8
ret = a.encode('utf-8')
print(ret) # b'\xe9\xa3\x9e\xe6\x9c\xba'# str -> gbk
ret = a.encode('gbk')
print(ret) # b'\xb7\xc9\xbb\xfa'# 这个是 utf8 编码的 bytes 类型
b = b'\xe9\xa3\x9e\xe6\x9c\xba'# utf8 -> str
ret = a3.decode('utf-8')
print(ret)# 这个是 gbk 的 bytes 类型
c = b'\xb7\xc9\xbb\xfa'# gbk -> str
ret = a4.decode('gbk')
print(ret)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部