当前位置: 首页 > 面试题库 >

无法使用Python打开Unicode URL

毕宇
2023-03-14
问题内容

使用Python 2.5.2和Linux Debian,我试图从包含西班牙字符的西班牙URL中获取内容'í'

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

我收到此错误:

UnicodeEncodeError:’ascii’编解码器无法在位置8编码字符u’\ xe1’:序数不在范围内(128)

我已经尝试过在将URL传递给urllib之前使用:

url = urllib.quote(url)

和这个:

url = url.encode('UTF-8')

但是他们没有用。

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


问题答案:

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

“ …仅字母数字[0-9a-zA-Z],特殊字符“ $ -_。+!*’()”,[不包括引号-
ed]和用于保留目的的保留字符可以在URL中未经编码地使用。”

正如我所提供的URL所解释的那样,这可能意味着您必须用“%ED”替换“带有强烈重音的小写字母i”。



 类似资料:
  • 作为我工作的一部分,我一直在制作python脚本,这些脚本读取各种格式(例如Excel、Csv、Txt)的输入,并将信息解析为更标准化的文件。这不是我第一次打开或使用Excel文件。 有一个特殊的文件给我带来了问题,我只是打不开它。当我尝试使用xlrd(版本0.9.3)时,它给了我以下错误: XLRDERROR:不支持的格式,或损坏的文件:BOF不是工作簿/工作表:OP=0x0009 vers=0

  • 我是python的新手,试图构建一个selenium代码来通过Firefox打开一个网站。我正在使用debian拉伸机进行测试。这些工具的版本如下: geckodriver 0.24.0(2019-01-28),Python 2.7.13,Mozilla Firefox 52.7.3,selenium(3.141.0) 在查看geckodriver.log时,我看到以下错误 16241936151

  • 本文向大家介绍python打开使用的方法,包括了python打开使用的方法的使用技巧和注意事项,需要的朋友参考一下 python怎么打开使用? 1、首先需要打开电脑的桌面,如图所示,并按开始的快捷键点击安装好的python3.6程序进入。 2、然后点击进入之后,如图所示,可以看到页面上面的三个大于号出现并且后面一直有光标在闪就表示启动成功了。 3、最后,第一个程序就是打印print,在光标后面输入

  • 问题内容: 在执行其他操作时,opencv可以正常工作。它可以打开图像并显示图像。但无法打开视频。 我用来打开视频的代码如下 但是执行时,它会输出如下错误消息 我和可以播放此视频,但opencv无法播放。 我已经安装和编解码器包。(使用) 我的ubuntu版本是。 我不确定是否是编解码器问题? 我已经使用或重建了opencv ,但它根本不影响问题。错误消息永远不会改变。 问题答案: 我将该文件转换

  • 导致错误: Traceback(最近一次调用最后一次):文件C:\Program Files(x86)\wing IDE 101 5.0\src\debug\tserver_sandbox.py,第3行,在传递文件c:\Python27\Lib\subprocess.py,第172行,在调用返回Popen(*popenargs,**kwargs). etc()文件c:\Python27\Lib\s

  • 我把Visual Studio从社区2015升级到了社区2017。现在,当我编译时,我得到错误消息,说“Error (active) E1696无法打开源文件“stdio.h”,引用的行如下所示: 如果我创建一个新项目,则会找到 stdio.h。 因此,我查看了项目配置属性- 所以似乎需要设置VC_IncludePath,但我找不到任何设置的地方。请注意,我找不到宏的,这可能是因为我使用的是 Vi