python中的URL编码
在 urllib 或其他库中是否缺少一个简单的方法来完成此任务? URL 编码将不安全的 ASCII 字符替换为“%”后跟两个十六进制数字。
这是输入和我的预期输出的示例:
Mozilla/5.0 (Linux; U; Android 4.0; xx-xx; Galaxy Nexus Build/IFL10C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla%2F5.0+%28Linux%3B+U%3B+Android+4.0%3B+xx-xx%3B+Galaxy+Nexus+Build%2FIFL10C%29+AppleWebKit%2F534.30+%28KHTML%2C+like+Gecko%29+Version%2F4.0+Mobile+Safari%2F534.30
Is there a simple method I'm missing in urllib
or other library for this task? URL encoding replaces unsafe ASCII characters with a "%" followed by two hexadecimal digits.
Here's an example of an input and my expected output:
Mozilla/5.0 (Linux; U; Android 4.0; xx-xx; Galaxy Nexus Build/IFL10C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla%2F5.0+%28Linux%3B+U%3B+Android+4.0%3B+xx-xx%3B+Galaxy+Nexus+Build%2FIFL10C%29+AppleWebKit%2F534.30+%28KHTML%2C+like+Gecko%29+Version%2F4.0+Mobile+Safari%2F534.30
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
对于 Python 2.x,请使用
urllib.quote
示例:
编辑:
在您的情况下,为了用加号替换空格,您可以使用
urllib.quote_plus
示例:
对于 Python 3.x,使用
quote
和字符串与空格一起使用
quote_plus
For Python 2.x, use
urllib.quote
example:
EDIT:
In your case, in order to replace space by plus signs, you may use
urllib.quote_plus
example:
For Python 3.x, use
quote
and for string with space use
quote_plus
请记住 urllib.quote 和 urllib.quote_plus 如果输入是 unicode 字符串,则会抛出错误
: 在这里回答,必须明确使用“UTF-8”:
Keep in mind that both urllib.quote and urllib.quote_plus throw an error if an input is a unicode string:
As answered here on SO, one has to use 'UTF-8' explicitly:
另外,如果您有一个包含多个值的字典,那么最好的方法是
urllib.urlencode
。Also, if you have a dict of several values, the best way to do it will be
urllib.urlencode
.