目录
- 编码方式
-
- Ascii
- Unicode
- utf-8
- gbk
- 总结
- 使用方式
-
- 编码对象转换的基本逻辑
- Ascii & Unicode & utf-8 & gbk
- Reference
在使用python开发上位机软件的时候,发现ARM发送的printf语句,只要打印中文,上位机软件就是乱码显示,仔细研究了一下相关资料,解决了该问题,这里和大家一起分享一下经验~
编码方式
在python中最常见的编码方式有四种,分别是ascii, unicode, utf8和gbk。
Ascii
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 -1 = 255,所以,ASCII码最多只能表示 255 个符号。
Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode规定所有字符和符号最少使用2字节(16 bites)来表示。
utf-8
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存。
gbk
gbk,也是基于Unicode编码的进一步优化,其文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示。
总结
在这里可以将这四种编码方式的特点放在如下表格里进行总结和比较:

使用方式
编码对象转换的基本逻辑
在计算机内存中,统一使用Unicode编码,Python的字符串类型是str,一个字符对应若干个字节。当需要保存到硬盘或者需要COM传输的时候,就转换为UTF-8或GBK编码(bytes),可以节省空间。这个时候就需要把str变为以字节为单位的bytes。
因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode 编码(encode)成另一种编

9212

被折叠的 条评论
为什么被折叠?



