You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解码UTF-8格式URL并使其可在浏览器正常访问?

解决URL编码字符解码及生成可点击链接的问题

我有一个包含三个String类型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']

这些URL中存在编码后的字符,我希望将它们转换为正确的西班牙语显示形式,并且点击后能跳转到对应的网页。

我尝试了以下代码,但解码后的字符串仍然保持原编码状态:

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)

问题原因

你用str.encode()和codecs.decode('utf-8')的操作只是把字符串转成字节再转回字符串,并没有处理URL特有的百分号编码(Percent-Encoding)。这些%C3%A1这类字符是URL对特殊字符的编码方式,需要用专门的URL解析工具来解码。

解决方案

使用Python标准库urllib.parse中的unquote()方法来解码URL中的编码字符,然后生成Markdown格式的可点击链接:

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 url in my_list:
    # 解码URL中的编码字符,得到显示用的西班牙语文本
    display_text = unquote(url.split('wiki/')[-1])
    # 生成Markdown链接格式
    markdown_link = f"[{display_text}]({url})"
    print(markdown_link)

输出结果

运行上述代码后,会输出以下Markdown格式的链接:

这些链接既显示正确的西班牙语文本,点击后也能跳转到对应的维基百科页面。

内容的提问来源于stack exchange,提问作者Javi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:00:43