编码:decode()/encode()、quote()/unquote()

编码类型:

ascii:用一个字节表示一个字符,仅包含127个英文大小写、数字、符号等
unicode:用2-4个字节表示一个字符,能够覆盖各国语言
utf-8:用1-6个字节表示一个字符,比如英文用一个,汉字通常用3个,为了节约空间

字符类型:

str:字符串
bytes:bytes 字面值中只允许 ASCII 字符(无论源代码声明的编码为何)。 任何超出 127 的二进制值必须使用相应的转义序列形式加入 bytes 字面值。
len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数

decode()和encode():字符串编码转换

decode():解码,作用是将其他编码的字符串转换成unicode编码
encode():编码,作用是将unicode编码转换成其他编码的字符串

字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为转换媒介的, 即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

 

eg1:字符串编码成bytes的对象

_str = ''' 
中文'''
_bytes = _str.encode()
print(_bytes)
结果:b' \n\xe4\xb8\xad\xe6\x96\x87' ---空行编码成\n,中文两字编码

eg2:bytes的对象解码成字符串

_bytes =b'\t\nabc'
_str = _bytes.decode() 
print(_str) 

结果图\t\n解码成空格和空行

quote()和unquote():用于对url进行编码、解码。

导入:from urllib import parse
功能:将单个字符串编码转化为 %xx%xx 的形式

bytes对象=parse.quote(str类型)
str类型=parse.unquote(bytes对象)

from urllib.parse import quote
from urllib.parse import unquote
str1 = 'https://www.amazon.com/s?ref=nb&k=%s' % quote("你好")
print(str1)#https://www.amazon.com/s?ref=nb&k=%E4%BD%A0%E5%A5%BD

str2 = 'https://www.amazon.com/s?ref=nb&k=%s' % unquote("%E4%BD%A0%E5%A5%BD")
print(str2)#https://www.amazon.com/s?ref=nb&k=你好

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值