2012-01-30 6 views
0

私は美しいスープに問題があります。Pythonの美しいスープコード

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

I取得文字列として、以下の出力 'LederGürtel': 私はので、私は次の関数

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

私が今持っている、文字列内のHTMLタグを取り除くGEDにしてみてください(革ベルトを意味する)

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

右のエンコーディングはウムラウト 'U' のためのコース\ XC3の\のXBCです。 この作業を取得するために一日のために試した後、私はあきらめて;-)

を頼むよ、私は任意のヘルプ Thxをに感謝

+0

役立ちます:もしそうなら、それはあなたが印刷するときウムラウトが正しく表示されますよう、全く問題ではありません'u'G \ xfcrtel''はcodepoint-string(" Unicode文字列 ")であり、' u'G \ u00fcrtel''に相当します。 '' G \ xc3 \ xbcrtel'.decode( 'UTF-8') 'は' u'G \ u00fcrtel''を返します。デバッグでは、各ステップでデータがバイトまたはコードポイントの形式であるかどうか、またどちらか一方を変換するときは、どのエンコーディングが使用されているかを考慮する必要があります。 – wberry

答えて

0

あなたの結果にウムラウトを持っているという事実が予想される動作です。美しいスープはユニコードを扱うので、これが期待されます。ここでの問題は何ですか?あなたは辞書のウムラウトを見ていないのですか? ` 'G \ XC3 \ xbcrtel'`:

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

ホープ、これはこれはあなたを助け場合

+0

私はmongoDBの専門家ではありませんが、あなたの質問に言及したいと思うかもしれません。だから、mongoに精通している人がそれを拾い上げて助けてくれるでしょう。また、実際の問題が何であるかは言及していません – inspectorG4dget

+0

私はmongoDBにdictを挿入しています。これが私が奇妙な行動を見る理由です。 「ü」の代わりに「」の文字(\ u7aef)を使用します。ありがとうございます。 – thesonix

+0

しかし、どのようなエンコーディングが\ u7aefですか? UTF-8は\ xc3 \ xbcです。 – thesonix

関連する問題