您现在的位置是:首页 > Python 当前栏目 python 编码和解码 Python 二进制 2023-03-02 11:03:07 时间 # unicode,utf-8什么关系 # 我们可以简单理解为,所有的字符图像存储在一个数据库中,计算机内存只能存储二进制,所以用二进制表示这些字符在数据库中的地址。这样我们就可以用二进制来表示字符了。unicode就是其中一种映射关系。unicode 是一种统称,旗下有分为UCS-2(16位),UCS-4(32位)。现在计算机操作系统内核都是拥抱UNICODE的,所以字符在内存中都是使用16位unicode码来表示的(16位不够用的时候,可能操作系统就集体更新32位unicode版本的内核了)。然而像英语一共就26个字母,用16位来存储是不是太小题大做了。所以就出现了utf-8这种映射关系。utf-8自动变换二进制长度来节省存储空间。 # 解码和编码 # 现在操作系统只认unicode的字符。我utf-8的字符它不认识怎么办,所以就出现了编码和解码的概念。以utf-8举例说明:把unicode字符变成utf-8就是编码,把utf-8变成unicode就是解码。其实解码和编码的本质就是寻找不同字符集之间二进制的映射关系。 ## coding:utf-8 ## 下面这种预处理语句是干什么的呢 #coding:utf-8 这句话的意思是告诉python我使用的是UTF-8编码的.py文件的,所以python就会用UTF-8来解码.py文件 。当我们保存.py文件时默认时用utf-8保存的,如果我们用ASCII(8位)保存,就会出现如下错误 SyntaxError: Non-ASCII character python 中的字符串可以用引号括起来。 '中文' "中文" '''中文''' # python中的字符编码 # python3是全面支持UNICODE的所以我们可以混合写中英文 >>> '中文AB' '中文AB' python3.x给我们提供两种书写方式进行编码 1. 添加b前缀进行ASCII编码。注意不要加入中文 >>> b'ABC' b'ABC' >>> b'中文' File "<stdin>", line 1 SyntaxError: bytes can only contain ASCII literal characters. 2.通过encode()方法制定编码 >>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87' >>> '中文'.encode('ascii') Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) # python中的字符解码 # 解码使用decode函数 >>> b'ABC'.decode('ascii') 'ABC' >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') '中文' # python2.x的unicode(可以不看) # 因为python的诞生比UNICODE 还早所以,python2的的字符都是ASCII >>> '中文' '\xd6\xd0\xce\xc4' >>> 那么我们想用**UNICODE**表示字符串怎么办,python2.7中可以在字符串前加入一个u >>> u'中文' u'\u4e2d\u6587' 现在我们可以看看如何编码一个字符串 >>> u'中文'.encode('utf-8')#编码成utf-8 '\xe4\xb8\xad\xe6\x96\x87' 反过来呢? '\xe4\xb8\xad\xe6\x96\x87' >>> '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')#UTF-8解码成UNICODE u'\u4e2d\u6587' 本文地址: python 编码和解码 相关文章 python操作数据库 Python数据结构 Python数据结构 Python 容器(Collections) Python error collections python之容器 python简单基础 python创建数组 Python:奇数筛选 【Python上手】函数 Python 学习笔记 Python语言基础 python数据保存 Python图片裁剪 java 0day_Java 0day简略分析 python 闭包 Python - 闭包 python 闭包 python 四边形分割 python 旋转列表