我有一个包含三个 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”保持相同的编码。
这就是所谓的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))