在python中模拟汉字的网址编码

Tia*_*Xie 1 python url encoding utf-8 character-encoding

我想模拟汉字的 URL 编码。对于我的用例,我有一个电子商务网站的搜索 URL

'https://search.jd.com/Search?keyword={}'.format('ipad')
Run Code Online (Sandbox Code Playgroud)

当我用英语搜索产品时,这很好用。但是,我需要输入中文,我试过了

'https://search.jd.com/Search?keyword={}'.format('??t?')
Run Code Online (Sandbox Code Playgroud)

,并在网络选项卡下找到以下编码

https://list.tmall.com/search_product.htm?q=%C4%CD%BF%CBt%D0%F4
Run Code Online (Sandbox Code Playgroud)

所以基本上,我需要编码输入,如 '??t?' 进入'%C4%CD%BF%CBt%D0%F4'。我不确定网站使用的是哪种编码?另外,如何使用python将汉字转换为这些编码?

更新:我检查了标题,内容编码似乎是 gzip?

Vig*_* R. 6

尝试使用库urllib.parse模块。更具体地说,urllib.parse.urlencode()功能。您可以传递编码(在这种情况下它似乎是“gb2312”)和一个包含查询参数的字典,以获得可以直接使用的有效 url 后缀。

在这种情况下,您的代码将类似于:

import urllib.parse

keyword = '??t?'
url = 'https://search.jd.com/Search?{url_suffix}'.format(url_suffix=urllib.parse.urlencode({'keyword': keyword}, encoding='gb2312'))
Run Code Online (Sandbox Code Playgroud)

有关此处编码的 更多信息此处有关 urlencode 的更多信息