如何解码 UTF-8 中的 URL 并在浏览器中打开它们时使它们正常工作[重复]

问题描述 投票:0回答:1

我有一个包含三个 URL 的列表,它们都是字符串类型。

my_list = ['https://es.wikipedia.org//wiki/Enciclopedia_Brit%C3%A1nica', 'https://es.wikipedia.org//wiki/Instituto_Nacional_de_Estad%C3%ADstica_(Espa%C3%B1a)', 'https://es.wikipedia.org//wiki/Mar%C3%ADa_Isabel_Gea']

如您所见,其中有一些非 UTF-8 编码。我希望它们以适当的方式用西班牙语写成,然后如果我单击它们,它们会引导我到适当的网页。

这是我试过的代码。

import codecs
my_list = ['https://es.wikipedia.org//wiki/Enciclopedia_Brit%C3%A1nica', 'https://es.wikipedia.org//wiki/Instituto_Nacional_de_Estad%C3%ADstica_(Espa%C3%B1a)', 'https://es.wikipedia.org//wiki/Mar%C3%ADa_Isabel_Gea']
for item in my_list:
    item_bytes = str.encode(item)
    item_string = codecs.decode(item_bytes, 'utf-8')
    print(item_string)

然而,我的“item_string”保持相同的编码。

python string url utf-8
1个回答
0
投票

这就是所谓的url编码,所以你需要做

urldecode
。为此,
unquote
中有一个
urllib.parse

函数

这里是例子:

from urllib.parse import unquote

my_list = ['https://es.wikipedia.org//wiki/Enciclopedia_Brit%C3%A1nica', 'https://es.wikipedia.org//wiki/Instituto_Nacional_de_Estad%C3%ADstica_(Espa%C3%B1a)', 'https://es.wikipedia.org//wiki/Mar%C3%ADa_Isabel_Gea']

for item in my_list:
    print(unquote(item))
© www.soinside.com 2019 - 2024. All rights reserved.