41

Python中有什么方法可以将其转换%CE%B1%CE%BB%20αλ它的真实表示形式吗?

4

3 回答 3

82

对于蟒蛇 2:

>>> import urllib2
>>> print urllib2.unquote("%CE%B1%CE%BB%20")
αλ 

对于蟒蛇 3:

>>> from urllib.parse import unquote
>>> print(unquote("%CE%B1%CE%BB%20"))
αλ

这是适用于所有版本的代码:

try:
    from urllib import unquote
except ImportError:
    from urllib.parse import unquote

print(unquote("%CE%B1%CE%BB%20"))
于 2012-08-01T21:51:39.943 回答
11

这里有两种编码。您的字符串首先被编码为UTF-8,然后每个字节都被编码为percent-encoded

要取回原始字符串,您需要先取消引用它,然后对其进行解码:

>>> import urllib
>>> s = '%CE%B1%CE%BB%20'
>>> result = urllib.unquote(s).decode('utf8')
>>> print result
αλ 

请注意,您需要启用 Unicode 的控制台才能显示该值(如果您在 print 语句中遇到错误,请尝试在IDLE中运行它)。

于 2012-08-01T21:52:01.677 回答
1

蟒蛇 3 答案

import urllib 
urllib.parse.unquote('/El%20Ni%C3%B1o/')

'/El Niño/'

来源

于 2018-06-26T19:16:55.567 回答