【发布时间】:2017-09-06 14:23:17
【问题描述】:
我这里有这个变量
reload(sys)
sys.setdefaultencoding('utf8')
foo = u'"Esp\xc3\xadrito"'
翻译为“Espírito”。但是当我像这样将我的变量传递给 urlencode 时
urllib.urlencode({"q": foo}) # q=%22Esp%C3%83%C2%ADrito%22'
特殊字符在 URL 中被错误地“表示”。
我应该如何解决这个问题?
【问题讨论】:
-
这是 Python2 还是 3?
-
@IronFist Python2。该函数在 Python 3 中称为
urllib.parse.urlencode。 -
是的,它的 Python 2.7。知道出了什么问题吗?当我将 q=%22Esp%C3%83%C2%ADrito%22' 放在解码器(例如meyerweb.com/eric/tools/dencoder)上时,解码后的值变为 q="EspÃrito"' 这是错误的。
-
你说错是因为百分比表示还是因为不是实际编码?
-
我想将“Espírito”作为查询参数发送到 endoint,但在我对其进行 urlencode 后,它变成了“Espírito”。 “i”变成了“A”,这是无意的。
标签: python unicode encoding python-2.x urlencode