首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python -无法编码“windows-1255”页

python -无法编码“windows-1255”页
EN

Stack Overflow用户
提问于 2018-04-11 22:57:43
回答 1查看 885关注 0票数 0

我正在使用BeautifulSoup,并试图读取一个用希伯来语编写的网站,它是按照下面这行用windows-1255编码的:

代码语言:javascript
复制
<meta http-EQUIV="Content-Type" Content="text/html; charset=windows-1255">

当我尝试对它进行编码时,我得到了以下错误:

代码语言:javascript
复制
> UnicodeEncodeError: 'charmap' codec can't encode characters in position 6949-6950: character maps to <undefined>

代码:

代码语言:javascript
复制
from bs4 import BeautifulSoup
import requests

r = requests.get('http://www.plonter.co.il')
soup = BeautifulSoup(r.text)
print soup.prettify().encode('windows-1255') 
EN

回答 1

Stack Overflow用户

发布于 2018-04-11 23:09:58

如果站点已经用windows-1255编码,你应该对其进行解码以获得unicode,或者只使用当前编码。

--edit我不知道r.text已经解码了。

代码语言:javascript
复制
>>> import requests
>>> r = requests.get('http://www.plonter.co.il')
>>> isinstance(r.text, unicode)
True
>>> isinstance(r.content, unicode)
False
>>> isinstance(r.content, str)
True
>>> r.encoding
'ISO-8859-1'
>>> r.content.decode(r.encoding).encode('utf-8')  # works
>>> r.content.decode(r.encoding).encode('windows-1255') # fails
>>> r.content.decode(r.encoding).encode('windows-1255', 'ignore'). # works
>>> r.content.decode(r.encoding).encode('windows-1252') # works

所以,我想你把编码搞错了。“‘windows 1255”无法处理没有错误的内容编码。另一方面,'utf-8','iso-8859-1‘和'windows-1252’似乎能够处理它。

代码语言:javascript
复制
>>> r.content.decode(r.encoding) == r.text
True
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49778415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档