如何正确对重音进行 url 编码?
我需要对外国名称进行网址编码,例如“Misère”。
当我这样做时:
urllib2.quote(name)
我收到错误:
File "/System/Library/Frameworks/Python.framework/Versions/
2.5/lib/python2.5/urllib.py", line 1205, in quote
res = map(safe_map.__getitem__, s)
KeyError: u'\xe8'
我做错了什么?
I need to url encode foreign names, like "Misère".
When I do:
urllib2.quote(name)
I get a the error:
File "/System/Library/Frameworks/Python.framework/Versions/
2.5/lib/python2.5/urllib.py", line 1205, in quote
res = map(safe_map.__getitem__, s)
KeyError: u'\xe8'
What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试:
Try:
对@苏妍倩的答案的一个小小的改进是在方法调用中包含安全字符。默认情况下, urllib2.quote() 仅包含
/
_
-
.
作为安全字符,这意味着像这样的字符:
将被转换,使 url 无用。例如:
请注意 url 的 https 部分的输出中的细微差别。
希望这可以节省其他人解决这个问题的时间!
A slight improvement to @苏妍倩's answer would be to include safe characters in the method call. By default, urllib2.quote() only includes
/
_
-
.
as a safe character which means characters like:
will be converted, rendering the url useless.For example:
Notice the slight difference in outputs in the https portion of the url.
Hopefully this saves someone else the time it took me to figure this out!