具有国际/UTF-8 字符的 Python urllib2() 函数

发布于 2024-10-21 19:37:42 字数 289 浏览 1 评论 0原文

对于个人研究/有趣的项目,我使用 Python urllib2() 函数。但是,当我有一个非 ASCII 字符的链接时,例如“????????????????????????”或“我爸是李刚”,那么解释器(Windows 7 中的 IDLE)就会遇到问题。

s = urllib2.urlopen("http://www.bing.com/search?q=我爸是李刚")

我应该如何纠正这个问题? (我应该将查询转换为 ASCII 还是有办法让 urllib2 以另一种方式使用 UTF-8?)

For a personal research/fun project I am using the Python urllib2() function. However, when I have a link with non-ASCII chars, say, "الراجل اللى ورا عمر سليمان" or "我爸是李刚" then the interpreter (IDLE in Windows 7) runs into problems.

s = urllib2.urlopen("http://www.bing.com/search?q=我爸是李刚")

How should I go about rectifying this? (Should I convert my query into ASCII or is there a way to have urllib2 work with UTF-8 another way?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

有木有妳兜一样 2024-10-28 19:37:42
s = urllib2.urlopen("http://www.bing.com/search?"
              + urllib.urlencode({ 'q' : u'我爸是李刚' .encode('utf8') } )

应该有效。

s = urllib2.urlopen("http://www.bing.com/search?"
              + urllib.urlencode({ 'q' : u'我爸是李刚' .encode('utf8') } )

Should work.

凌乱心跳 2024-10-28 19:37:42
# coding: utf-8

import urllib
import urlparse

scheme = 'http'
netloc = 'www.bing.com'
path = '/search'
qs = {'q': u'我爸是李刚'.encode('utf-8')}

print urlparse.urlunparse((scheme, netloc, path, '', urllib.urlencode(qs), ''))

# http://www.bing.com/search?q=%E6%88%91%E7%88%B8%E6%98%AF%E6%9D%8E%E5%88%9A
# coding: utf-8

import urllib
import urlparse

scheme = 'http'
netloc = 'www.bing.com'
path = '/search'
qs = {'q': u'我爸是李刚'.encode('utf-8')}

print urlparse.urlunparse((scheme, netloc, path, '', urllib.urlencode(qs), ''))

# http://www.bing.com/search?q=%E6%88%91%E7%88%B8%E6%98%AF%E6%9D%8E%E5%88%9A
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文