Python漂亮的汤编码
我对靓汤有意见。 我试图去掉字符串中的html标记,因此我有以下函数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
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