Python3 如何对url解码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3 如何对url解码?相关的知识,希望对你有一定的参考价值。

参考技术A

url编码:

import urllib

url = 'http://test.com/s?wd=哈哈'   #如果此网站编码是gbk的话,需要进行解码,从gbk解码成unicode,再从Unicode编码编码为utf-8格式。

url = url.decode('gbk', 'replace')

print urllib.quote(url.encode('utf-8', 'replace'))

参考资料

Python3 如何对url解码?.CSDN博客[引用时间2018-1-1]

如何在python中对西班牙语进行编码和解码

【中文标题】如何在python中对西班牙语进行编码和解码【英文标题】:How to encode and decode from spanish in python 【发布时间】:2014-01-22 23:34:38 【问题描述】:

我有以下用 python 2.7 编写的代码

# -*- coding: utf-8 -*-    
import sys

_string = "años luz detrás"
print _string.encode("utf-8")

这会引发以下错误:

print _string.encode("utf-8")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128)

任何帮助表示赞赏,在此先感谢

【问题讨论】:

你不需要使用encode,只尝试"print _string" Python - 'ascii' codec can't decode byte的可能重复 【参考方案1】:

在 Python 2 中,字符串文字 "" 创建一个字节串。然后你在一个字节串上调用.encode("utf-8"),在执行.encode("utf-8")之前,Python首先尝试使用默认字符编码(ascii)将其解码为Unicode字符串。

u"" 创建 Unicode 字符串。它将 UnicodeDecodeError 修复为@Bleeding Fingers suggested。

# -*- coding: utf-8 -*-    
print u"años luz detrás"

如果标准输出被重定向,它可能会导致UnicodeEncodeError。在这种情况下设置PYTHONIOENCODING 环境变量。

【讨论】:

【参考方案2】:

"之前添加u

>>> _string = u"años luz detrás"
>>> print _string.encode("utf-8")
años luz detrás

这样就可以了。

【讨论】:

以上是关于Python3 如何对url解码?的主要内容,如果未能解决你的问题,请参考以下文章

python3解决url编码与解码

Python3 url解码与参数解析

Python3 url解码与参数解析

URL地址编码和解码

URL编码与解码(使用 Python3 urllib.parse) 与 贴吧小爬虫案例

url编码问题在python中怎么解决