Character encoding 如何从网站中识别字符编码?

Character encoding 如何从网站中识别字符编码?,character-encoding,python-2.7,nlp,nltk,Character Encoding,Python 2.7,Nlp,Nltk,我想做什么: 我从数据库中得到一个URI列表并下载它们, 删除停止词并计算这些词在网页中出现的频率, 然后尝试在mongodb中保存 问题: 当我试图将结果保存到数据库中时,我得到了错误 bson.errors.invalidDocument:该文档必须是有效的utf-8 它似乎与代码“\xc3someothersqunderwords”和“\xe2something”有关 当我处理网页时,我尝试删除标点符号,但我无法删除重音符号,因为我会得到一个错误的单词 我已经尝试过的 我试图通过网页的标题

我想做什么: 我从数据库中得到一个URI列表并下载它们, 删除停止词并计算这些词在网页中出现的频率, 然后尝试在mongodb中保存

问题: 当我试图将结果保存到数据库中时,我得到了错误 bson.errors.invalidDocument:该文档必须是有效的utf-8

它似乎与代码“\xc3someothersqunderwords”和“\xe2something”有关 当我处理网页时,我尝试删除标点符号,但我无法删除重音符号,因为我会得到一个错误的单词

我已经尝试过的 我试图通过网页的标题识别字符编码 我试过使用chardet

使用重新编译(r“[^a-zA-Z]”)和/或unicode(变量'ascii','ignore')
这对非英语语言不好,因为它们会去除口音

我想知道的是:
有人知道如何识别字符并翻译成正确的单词/编码吗?
e、 g.从网页“\xe2”获取此信息,并将其翻译为

(英语不是我的第一语言,请原谅我)
编辑:如果有人想查看

,很难找到网站的正确字符编码,因为标题中的信息可能是错误的。在猜测字符编码方面做得相当好,并自动将其解码为Unicode

from bs4 import BeautifulSoup
import urllib

url = 'http://www.google.de'
fh = urllib.urlopen(url)
html = fh.read()
soup = BeautifulSoup(html)

# text is a Unicode string 
text = soup.body.get_text()
# encoded_text is a utf-8 string that you can store in mongo
encoded_text = text.encode('utf-8')

另请参见您真正想阅读和的答案。在不知道网站使用了什么编码的情况下,很难回答这个问题。我以前看过Python Unicode Howto,但是谢谢,我会看Joel的文章。我认为这个解决方案是有效的,但我发现了问题,单词putch_tokenize将字符分离为“\xe2\xc2”和“\xe2”,beautifulsoup真的很棒,我想我发现了问题,当我去除口音时,问题出现了。