编码转换
编码转换
ascii码
0000 0001
8个位为一个字节,1个字节表示一个字符。
可以表示字母、数字、特殊符号
unicode(万国码)
- 前期:16位 2个字节表示一个字符。
- 后期现在:32位 4个字节表示一个字符
utf-8(最少8位表示一个字符)
- 英文:一个字节表示一个字符
- 欧洲语言:两个字节表示一个字符
- 中文(亚洲):三个字节表示一个字符
gbk(国标)
- 英语:使用ascii码,1个字节表示一个字符
- 中文:两个字节表示一个字符。
知识点补充:
- 编码之前的二进制不可以相互转换。
- 存储和传送使用0101传送,不使用unicode码,占用空间大。
- byte的用法跟字符串str用法一样。
python中的编码
- python3中的内存中的编码使用的是unicode。soPython中的字符串不能直接存储和传输。
- bites编码方式是非unicode。如utf-8、gbk
-
-
- 对于英文
- str 表现形式:“qiji”;内部编码:unicode
- bytes 表现形式:b“qiji”;内部编码:非unicode
- 对于中文
-
- str 表现形式:“弃疾”;内部编码:unicode
- bytes 表现形式 :b'\xe4\xb8\xad\xe5\x9b\xbd' ; 内部编码: 非unicode。
-
-
encode():编码 str转化为bytes
1 s = 'hello girl' 2 s1 = s.encode('utf-8') 3 print(s1)
输出结果:
b'hello girl'
1 s = 'hello girl' 2 s1 = s.encode('gbk') 3 print(s1)
输出结果:
1 b'hello girl'
1 s = '中国' 2 s1 = s.encode('utf-8') 3 print(s1)
输出结果:
1 b'\xe4\xb8\xad\xe5\x9b\xbd'
gbk与utf-8之前的相互转换

-
gbk、utf-8之前不能直接相互转换,得通过unicode作为桥梁来转换。(先解码后转码)
浙公网安备 33010602011771号