2012-01-30 4 views
0

나는 아름다운 수프에 문제가있다.파이썬 아름다운 수프 인코딩

print {'title' : string_with_german_umlauts} 
print {'title' : self.cleanHtml(string_with_german_umlauts)} 

I 얻는 문자열에 대한 다음과 같은 출력 '레더 감독 Gürtel' 나는 그러므로 나는 다음과 같은 기능

def cleanHtml(self, html): 
    try: 
     soup = BeautifulSoup(html); 
     content = soup.findAll(text=True) 
     return ''.join(content); 
    except: 
     print html 

내가 지금 할 수있는 문자열에서 HTML 태그를 제거 검정 고시에 시도 (의미 가죽 벨트)

{'title': 'Leder G\xc3\xbcrtel'} 
{'title': u'Leder G\xfcrtel'} 

오른쪽 인코딩 움라우트 'U'의 과정 \ XC3의 \의 XBC이다. 이 작업을 얻기 위해 하루 종일 시도 후, 나는 포기하고 내가 어떤 도움 들으을 주셔서 감사합니다 ;-)

요청할 것입니다

+0

하는 데 도움이 : 그렇다면, 그건 당신이 인쇄 할 때 움라우트가 제대로 볼 수있는 바와 같이, 전혀 문제가되지 않습니다 'u'G \ xfcrtel''은 코드 문자열 ("Unicode string")이며'u'G \ u00fcrtel ''과 같습니다. ''G \ xc3 \ xbcrtel '.decode ('UTF-8')'은'\ u00fcrtel''을 반환합니다. 디버깅은 데이터가 바이트 또는 코드 포인트 형식인지 여부와 각 단계에서 데이터 유형이 서로 변환되는지 여부를 고려하면서 어떤 인코딩이 사용되고 있는지 고려하십시오. – wberry

답변

0

당신이 당신의 결과에 움라우트가 예상되는 동작이 있다는 사실. Beautiful Soup는 유니 코드를 처리하므로 예상됩니다. 여기에 어떤 문제가 있습니까? 너는 사전에 움라우트가 보이지 않는가? `G \ XC3 \ xbcrtel'` :

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

희망이이 당신을하는 데 도움이 경우

+0

나는 mongoDB에 대한 전문가가 아니지만 질문에 언급 할 수 있으므로 몽고에 정통한 사람이 도움을 받으면서 도와 줄 것입니다. 또한 실제 문제가 무엇인지 언급하지 마십시오 – inspectorG4dget

+0

내 mongoDB에 dict을 삽입하고 있습니다. 이것이 내가 이상한 행동을 보는 이유입니다. 'ü'대신에 끝 문자 (\ u7aef). – thesonix

+0

감사합니다. 하지만 어떤 종류의 인코딩은 \ u7aef입니까? UTF-8은 \ xc3 \ xbc입니다. – thesonix