无法用python打开unicode url

ode*_*ixe 9 python unicode

使用python 2.5.2和linux debian我试图从包含西班牙语字符('í')的西班牙语网址获取内容:

import urllib
url = u'http://mydomain.es/índice.html'
content = urllib.urlopen(url).read()
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

'í'

我在尝试将url传递给urllib之前使用了:

'í'

还有这个:

'í'

但它不起作用

你能告诉我我做错了什么吗?

mik*_*iku 7

这对我有用:

#!/usr/bin/env python
# define source file encoding, see: http://www.python.org/dev/peps/pep-0263/
# -*- coding: utf-8 -*-

import urllib
url = u'http://example.com/índice.html'
content = urllib.urlopen(url.encode("UTF-8")).read()
Run Code Online (Sandbox Code Playgroud)


Ale*_*lli 5

根据适用标准RFC 1738,URL 只能包含 ASCII 字符。这里有很好的解释,我引用:

“...仅字母数字 [0-9a-zA-Z]、特殊字符“$-_.+!*'()”、[不包括引号 - ed] 以及用于其保留目的的保留字符可以在 URL 中以未编码的方式使用。”

正如我给出的 URL 所解释的,这可能意味着您必须将“带锐音符号的小写 i”替换为“%ED”。

  • 我相信这已经改变了,至少域现在可以包含任意 Unicode 字符。 (4认同)