代码示例
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author  : jia666
# Time    : 2021/2/22 9:23

from urllib.parse import quote,unquote

str = "基层表编码"
#TODO 1 utf-8编码
str_utf=str.encode('utf-8') #默认utf-8,这步,不需要即可
print('utf-8编码:'+quote(str_utf))
print('默认编码:'+quote(str))
#细心的你会发现,上面得到的结果相同
#解码,默认utf-8
print('默认解码:'+unquote(quote(str_utf)))

#TODO 2 GBK编码
str_gbk = str.encode("GBK") #指定GBK编码,可以将utf-8编码的汉字转换为GBK编码
print('GBK编码:'+quote(str_gbk))   # #可以比较,GBK编码后的URL编码与UTF-8编码后的字符不一样,同样,解码也不一样
print('utf-8编码:'+quote(str_utf))
print("GBK编码-指定GBK解码:"+unquote(quote(str_gbk),encoding='GBK'))
print("GBK编码-默认utf-8解码:"+unquote(quote(str_gbk)))

结果输出
"""
utf-8编码:%E5%9F%BA%E5%B1%82%E8%A1%A8%E7%BC%96%E7%A0%81
默认编码:%E5%9F%BA%E5%B1%82%E8%A1%A8%E7%BC%96%E7%A0%81
默认解码:基层表编码
GBK编码:%BB%F9%B2%E3%B1%ED%B1%E0%C2%EB
utf-8编码:%E5%9F%BA%E5%B1%82%E8%A1%A8%E7%BC%96%E7%A0%81
GBK编码-指定GBK解码:基层表编码
GBK编码-默认utf-8解码:���������
"""
encodeURIComponent编码:会对特殊符号进行编码
特殊符号:;/:@&=+$,# %
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author  : jia666
# Time    : 2021/7/12 11:37
"python3 进行encodeURIComponent编码"
import execjs
def quote(string):
    js_code = "encodeURIComponent('{}')".format(string)
    ctx = execjs.compile(js_code)
    results = ctx.eval(js_code)
    return results


if __name__ == '__main__':
    content = 'c001002Afhtmlkda5fcefa-792c-4816-913c-7fd7ab5ffe08-n41624583468117keyword%E6%8A%8A%E6%9C%AA%E6%9D%A5%E7%82%B9%E4%BA%AEs1626053383uMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36/220001v3.18.4';
    print(quote(content))
注意
"""
编码格式要与解码格式要一致,否则会出现乱码,默认编码解码格式为UTF-8
在对网页中的url编码进行解码时,
优先尝试utf-8,若出现乱码,
尝试GBK解码
"""
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐