Python的编码

# python 中的编码

https://blog.csdn.net/qq_38880380/article/details/86585271

# 基本概念

# 字符集与字符编码

  • 字符集(Charset)字符串?:是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。

  • 字符编码(Character Encoding):是一套法则,即在符号集合与数字系统之间建立对应关系。字符编码就是将符号转换为计算机可以接受的数字系统的数字代码。

  • 英文字母和中文汉字在不同字符集编码下的字节数不同 英文字母|中文汉字|字符集编码| -|-|-| 字节数 : 1;| 字节数 : 2;|编码:GB2312 字节数 : 1;| 字节数 : 2;|编码:GBK 字节数 : 1;| 字节数 : 2;|编码:GB18030 字节数 : 1;| 字节数 : 1;|编码:ISO-8859-1 字节数 : 1;| 字节数 : 2;|编码:UTF-8 字节数 : 4;| 字节数 : 4;|编码:UTF-16 字节数 : 2;| 字节数 : 2;|编码:UTF-16BE 字节数 : 2;| 字节数 : 2;|编码:UTF-16LE

编码进化史

  • Ascii码 : 最早的英文字符编码,一个字节的低7位表示英文的128个字符,高1位统一为0; 美国人
  • 全字节进行编码: 最多可表示256位 欧洲人
  • 全字节进行编码: 0–127表示的符号是一样的,但是128–255这一段,各国不一样 其他国家地区
  • GB2312汉字编码: 汉字多,256个字符不够 中国
  • unicode: 多种不同编码的统一,容纳100多万个符号 全球
  • UTF-8 变长的编码方式,UTF-8编码不仅考虑了编码,还考虑了存储

# 字符编码转换

python2 与 python3 是有区别的

python 中将Unicode编码的其他编码方式的字符串定义为 str 字符串分为 unicode字符 和 str 字符两种


u'\u4e2d\u6587'
'\xe4\xb8\xad\xe6\x96\x87'

1
2
3
4

# 编码 encode

将 unicode字符 类型转换成 bytes 类型 str.encode()

# 解码 decode

将 bytes 类型转换成 unicode字符 类型

# 字节概念

字节(Byte )是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位的字节,即它包含八位的二进制数。

二进制&十六进制转换表:

|||||||||||||||||||||||| |-|-|-|-|-|-|-|-|-|-|-|-|-|-| |0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F| |0000|0001|0010|0011|0100|0101|0110|0111|1000|1001|1010|1100|1101|1111

# 字节串

字节串由多个16进制字节组成,可以通过解码转成字符串

#字节串
b'\xe6\x9d\xa8\xe9\x9b\xaa'

#解码为字符串
b'\xe6\x9d\xa8\xe9\x9b\xaa'.decode('utf-8')

1
2
3
4
5
6

b"\xc5\xc0\xb3\xe6".decode(encoding="gb2312", errors="strict")

#

# 编码识别

十六进制字节串 转 字符串

# 字符串与编码

unicode utf-8

encode("UTF-8")

decode("UTF-8")

# 16进制字节串转字符串

decode('string_escape')

# 将字符串转16进制字节串

encode('string_escape')

encode('unicode-escape')

decode('unicode-escape')

# json

# 常见错误

UnicodeDecodeError: 'ascii' codec can't

上次更新: 2022/12/05, 22:29:05

Initializing...

最近更新
01
git的tag与branch 原创
05-21
02
阿里云SLS日志服务的数据脱敏及安全管理 原创
03-21
03
云平台的成本管理 原创
03-13
更多文章>
×