Python 将有趣的特殊拉丁字符转换为unicode(外来字符)

Python 将有趣的特殊拉丁字符转换为unicode(外来字符),python,unicode,character-encoding,beautifulsoup,Python,Unicode,Character Encoding,Beautifulsoup,我正试图抓取一个有希伯来语内容的网站 然而,该遗址的希伯来部分看起来像 úåìåòô 如何将这些字符转换为正确的字母 我正在将Python与BeautifulSoup一起使用您需要为BeautifulSoup提供正确的编解码器,因为否则会做出有根据的猜测,有时会出错 如果使用urllib2加载页面,则可以传递服务器设置的任何编码: soup = BeautifulSoup(response.read(), from_encoding =response

我正试图抓取一个有希伯来语内容的网站

然而,该遗址的希伯来部分看起来像

úåìåòô
如何将这些字符转换为正确的字母


我正在将Python与BeautifulSoup一起使用

您需要为BeautifulSoup提供正确的编解码器,因为否则会做出有根据的猜测,有时会出错

如果使用
urllib2
加载页面,则可以传递服务器设置的任何编码:

soup = BeautifulSoup(response.read(),
                     from_encoding =response.info().getparam('charset'))
请参阅BeautifulSoup文档的第页。

根据网站

cp424 EBCDIC-CP-HE,IBM424希伯来语
cp856希伯来语
cp862 862,IBM862希伯来语
cp1255 windows-1255希伯来语 iso8859_8 iso-8859-8,希伯来语


BeautifulSoup使用了错误的编解码器对页面进行解码。如何使用
urllib2.urlopen()
或其他方法加载HTML?该网页很可能在HTTP响应头中设置了正确的编解码器。是的,我正在使用该函数-然后是
read()
我认为cp1255更可能在野外找到。没有
get_param()
,请使用
getparam()
代替Python 2。但在Python 3中,它被重命名,这就是为什么我有时会出错的原因-p该问题没有标记,因此默认情况下应显示Python 2代码,即,如果您使用Python 3代码,请明确提及它。顺便说一句,您的意思正好相反,即Python 2中的
getparam()
和Python 3中的
get_-param()
在Python 2中没有(
get_-param()
)。