【发布时间】:2012-10-26 14:44:58
【问题描述】:
我在 Windows 8 中使用 python 3.3.0。
requrl = urllib.request.Request(url)
response = urllib.request.urlopen(requrl)
source = response.read()
source = source.decode('utf-8')
如果网站有utf-8 字符集,它会正常工作,但如果它有iso-8859-1 或任何其他charset 怎么办。意味着我可能有不同的网站网址和不同的字符集。
那么,如何处理多个字符集呢?
现在让我告诉您我尝试解决此问题时的努力,例如:
b1 = b'charset=iso-8859-1'
b1 = b1.decode('iso-8859-1')
if b1 in source:
source = source.decode('iso-8859-1')
它给了我一个像TypeError: Type str doesn't support the buffer API这样的错误
所以,我假设它将 b1 视为字符串!这不是正确的方法! :(
请不要说手动更改源代码中的字符集或您阅读过python文档! 我已经尝试过深入研究 python 3 文档,但仍然没有运气,或者我可能没有选择正确的模块/内容来阅读!
【问题讨论】:
-
通过删除你的问题的一部分,你把我的回答变成了一个疯子的漫无边际。
标签: python character-encoding python-3.3