Python urllib2.unquote()与Javascript unescape()的比较
我有一个字符串,我用Python urllib2.unquote()与Javascript unescape()的比较,javascript,python,html,flask,Javascript,Python,Html,Flask,我有一个字符串,我用python urllib2.quote()编码。所讨论的字符串是“Z%C3%BCrich”,它是从“Zürich”编码的。然而,python处理此问题的方式与JavaScript处理此问题的方式似乎存在差异 在python中: >>> print urllib2.unquote("Z%C3%BCrich") Zürich 在JavaScript中: > unescape("Z%C3%BCrich") 'Zürich' 它们接收相同的输入字符串,
python urllib2.quote()
编码。所讨论的字符串是“Z%C3%BCrich”
,它是从“Zürich”
编码的。然而,python处理此问题的方式与JavaScript处理此问题的方式似乎存在差异
在python中:
>>> print urllib2.unquote("Z%C3%BCrich")
Zürich
在JavaScript中:
> unescape("Z%C3%BCrich")
'Zürich'
它们接收相同的输入字符串,但生成非常不同的输出字符串。我做错了什么
注意:这篇文章不是重复的,作者在这篇文章中遇到了相反的问题。Javascript函数
unescape()
已被弃用,您应该改用decodeURI()
unescape()
为您提供字符串的utf-8编码形式,而不是您想要的unicode。将我的评论作为答案发布
你应使用:
decodeURI("Z%C3%BCrich")
而不是JavaScript中的unescape(“Z%C3%BCrich”)
基本上,
urllib2.quote()
更像JavaScript中的encodeURI()
。而urlib2.unquote()
是decodeURI()
rahter,而不是unescape()
您应该始终避免使用JavaScript中的
escape()
和unescape()
函数,因为它们会给您奇怪的输出…就像您现在看到的那样。尝试decodeURI(“Z%C3%BCrich”)
。基本上,urlib2.quote()
更像是JavaScript中的encodeURI()
。而urlib2.unquote()
是decodeURI()
rahter,而不是unescape()
。你应该避免使用JavaScript中的escape()
和unescape()
函数,因为它们会给你奇怪的输出…就像你现在看到的那样。太好了,我不知道。我对Python很有经验,但对JavaScript还比较陌生。我感谢你的迅速反应。既然你是先回答的,如果你把它作为一个答案贴出来,我会接受你的答案。非常感谢你的迅速回复,效果很好。