1. pthon字符类型
str 字符串(Unicode码):是Unicode标准并且可以选择不同编码表示,如utf- 等。
byte 字节(字节码):二进制串的十六进制表示
bytearray 字节数组

2. 常见编码格式


编码格式

存储方式

ASCII

存储在一个字节Byte (8bit)0-127,仅能表达英文、数字和基本的标点符号

latin-1

存储在一个字节Byte 128-255

UTF-8

可变字节

UTF-162

byte存储字符,另加2byte作为标识

UTF-3

24byte

Unicode码

每个字符用2个或更多字节表示,可表示全球所有的语言

补充:

  1. 为了处理英文字符,产生了ASCII码。
  2. 为了处理中文字符,产生了GB2312。
  3. 为了处理各国字符,产生了Unicode。
  4. 为了提高Unicode存储和传输性能,产生了UTF-8,它是Unicode的一种实现形式。

内置函数ord和chr

///获取A字符的代码点  
>>>ord('A')
	65
///获取65代码点对应的字符
>>>chr(65)
	A

3. 编码和解码

python字符串utf8编码转换 python 字符串转编码_编码字符


encode编码、decode解码、bytes编码

python字符串utf8编码转换 python 字符串转编码_ico_02

  1. str1.encode(‘常见编码格式’):方法将Unicode编码字符转化为其他编码字符。*
>>>str2='你把我编码成机器理解的字节'
>>>str2.encode('utf-8')
///b表示后面引号里的数据类型是bytes,即字节
b'\xe4\xbd\xa0\xe6\x8a\x8a\xe6\x88\x91\xe7\xbc\x96\xe7\xa0\x81\xe6\x88\x90\xe6\x9c\xba\xe5\x99\xa8\xe7\x90\x86\xe8\xa7\xa3\xe7\x9a\x84\xe5\xad\x97\xe8\x8a\x82'
  1. 字节码.decode('常见编码格式):将其他编码字符转化为Unicode编码字符。
>>>a1=b'\xe4\xbd\xa0\xe6\x8a\x8a\xe6\x88\x91\xe7\xbc\x96\xe7\xa0\x81\xe6\x88\x90\xe6\x9c\xba\xe5\x99\xa8\xe7\x90\x86\xe8\xa7\xa3\xe7\x9a\x84\xe5\xad\x97\xe8\x8a\x82'
>>>a1.decode('utf-8')
'你把我编码成机器理解的字节'
  1. bytes(unicode编码字符串, ‘常见编码格式’)
bytes('你把我编码成机器理解的字节','utf-8')
b'\xe4\xbd\xa0\xe6\x8a\x8a\xe6\x88\x91\xe7\xbc\x96\xe7\xa0\x81\xe6\x88\x90\xe6\x9c\xba\xe5\x99\xa8\xe7\x90\x86\xe8\xa7\xa3\xe7\x9a\x84\xe5\xad\x97\xe8\x8a\x82'

4. 去除UTF-8的BOM前缀

encoding=‘utf-8-sig’

///添加BOM前缀
open('data3.txt','w',encoding='utf-8-sig').write('haha')
4

///去除BOM前缀
open('data3.txt','r',encoding='utf-8').read()
'\ufeffhaha'

open('data3.txt','r',encoding='utf-8-sig').read()
'haha'