Python漂亮的汤编码

Python漂亮的汤编码,python,encoding,beautifulsoup,Python,Encoding,Beautifulsoup,我对靓汤有意见。 我试图去掉字符串中的html标记,因此我有以下函数 def cleanHtml(self, html): try: soup = BeautifulSoup(html); content = soup.findAll(text=True) return ''.join(content); except: print html 当我现在这样做时: print {'title' : string_wi

我对靓汤有意见。 我试图去掉字符串中的html标记,因此我有以下函数

def cleanHtml(self, html):
    try:
        soup = BeautifulSoup(html);
        content = soup.findAll(text=True)
        return ''.join(content);
    except:
        print html
当我现在这样做时:

print {'title' : string_with_german_umlauts}
print {'title' : self.cleanHtml(string_with_german_umlauts)}
我得到字符串“Leder Gürtel”(意思是皮带)的以下输出

对于umlaut'ü',正确的编码当然是\xc3\xbc。 经过一整天的努力,我会放弃并要求;-)

谢谢你的帮助
Thx

结果中包含umlauts这一事实是预期行为。Beautiful Soup处理unicode,因此这是意料之中的。这里有什么问题?是不是你没有在字典里看到元音?如果是这样,那根本不是问题,因为打印时umlaut将正确可见:

>>> d = {'title': u'Leder G\xfcrtel'}
>>> for k in d:     
...     print k, d[k]
...
title Leder Gürtel

希望这能有所帮助

我不是mongoDB方面的专家,但您可能希望在您的问题中提到这一点,以便精通mongo的人了解这一点并帮助您解决问题。另外,你没有提到我在mongoDB中插入dict的实际问题是什么。这就是我看到奇怪行为的原因,例如端 字符(\u7aef)而不是'u'。谢谢。但是\u7aef是什么类型的编码?UTF-8是\xc3\xbc。不太确定\u7aef是什么。也许您正在其他地方操作字符串-这可能会导致对mongoyes的误解,我想这肯定是python=>pymongo的问题。Python本身正确地处理编码。在这种情况下,这有助于您:
'G\xc3\xbcrtel'
是字节字符串,
u'G\xfcrtel'
是码点字符串(“Unicode字符串”),相当于
u'G\u00fcrtel'
<代码>'G\xc3\xbcrtel'。解码('UTF-8')返回
u'G\u00fcrtel'
。在调试过程中,在每个步骤中考虑数据是否为字节或代码点的形式,并且当转换一个和另一个时,考虑使用什么编码。
>>> d = {'title': u'Leder G\xfcrtel'}
>>> for k in d:     
...     print k, d[k]
...
title Leder Gürtel