【发布时间】:2012-08-08 10:48:10
【问题描述】:
我确定我不是第一个遇到这个问题的人。但是经过数小时的调试、谷歌搜索和 StackOverflow-ing 没有找到答案,我决定发布这个问题。如果我错过了什么,请提前抱歉,但现在,我很困惑。
我正在使用 BeautifulSoup 来解析 UTF-8 网站。我正在使用网站上的文本来构建一个 URL 以进一步抓取。我遇到了一些非英文字符的问题。
例如:站点包含字符串Originální formule,我想用它来构建URL:http://blahblah.com/Originální-formule 或http://blahblah.com/origin%C3%A1ln%C3%AD-formule。问题是,我收到http://blahblah.com/Origin\xe1ln\xed-formule,这会产生错误。我尝试了编码、解码等等,但我仍然无法获得正确的 URL。
顺便说一句,当我print u'Origin\xe1ln\xed-formule' 时,字符串打印得很好。它只是编码不成功。
我做错了什么?
【问题讨论】:
-
...我们不知道。你在做什么在?
-
问题是,如何将字符串 u'Origin\xe1ln\xed-formule' 转换为可以与 urllib2/urllib.urlopen() 一起使用的字符串?
-
@l4mpi urlencode 不接受字符串作为参数。它用于将参数编码为参数字符串。这不是我的情况。不过,SanSS 的答案是正确的。
标签: python unicode utf-8 urllib2 urllib