字符编码和解码,字符集和字符编码
字符指的是一个抽象的符号
字符集定义了一个由字符组成的集合和字符对应的编号,比如unicode
字符编码定义了字符编号转换成二进制在计算机存储的方式,比如utf-8
字符解码将一串二进制序列根据对应的编码解析成字符串
if __name__ == "__main__":
# Unicode字符串
unicode_str = '你好,world!'
# 将Unicode字符串编码成UTF-8编码的字节字符串
byte_str = unicode_str.encode('utf-8')
print(unicode_str)
print(byte_str)
# 根据gbk编码去解码
gbk_str = byte_str.decode('gbk')
print(gbk_str)
在网络编程中,都是传输字符编码的结果,如果不选择对应的字符编码规则来解码,就会出现乱码
补充(字体):
字体指的是字符点阵图(将抽象符号具体为一个画出来的东西)加上对应的编号,不同的字体,可能会出现字符相同的编号,字符点阵图不同,但表达的是同一个符号;也可能相同的字符,但是表达的不是同一个符号。这就导致阅读pdf文件的时候,没有嵌入字体,直接复制pdf上的文字,出现复制的文字和pdf显示的文字不一样。