Используемая кодировка выглядит GB2312
Это может вам помочь:
def encodeGB2312(data):
hexData = data.encode(encoding='GB2312').hex().upper()
encoded = '%' + '%'.join(hexData[i:i + 2] for i in range(0, len(hexData), 2))
return encoded
output = encodeGB2312('耐克t恤')
print(output)
url = f'https://list.tmall.com/search_product.htm?q={output}'
print(url)
Вывод:
%C4%CD%BF%CB%74%D0%F4
https://list.tmall.com/search_product.htm?q=%C4%CD%BF%CB%74%D0%F4
Единственная проблема с моим кодом заключается в том, что он, похоже, не на 100% соответствует ссылке, которую вы пытаетесь достичь. Он преобразует символ t
в кодировку GB2312. Хотя, похоже, в вашей ссылке используется некодированный символ t
. Хотя при открытии URL-адреса кажется, что он все еще работает.
Изменить:
Vigne sh Bayari R, его сообщение обрабатывает URL-адрес правильным (предполагаемым) способом. Но и в этом случае мое решение тоже работает.