提问人:Javi 提问时间:2/20/2023 最后编辑:mkrieger1Javi 更新时间:2/20/2023 访问量:46
如何以 UTF-8 格式解码 URL 并在浏览器上打开它们时使它们正常工作 [复制]
How can I decode the URLs in UTF-8 and make them working when I open them on a browser [duplicate]
问:
我有一个包含三个 URL 的列表,它们都是 String 类型。
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”始终具有相同的编码。
答:
0赞
Alex Kosh
2/20/2023
#1
这称为 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))
上一个:字符串中的符文
评论