2012-04-27 6 views
0

をされ、Webページ上で与えられたとして、私の予想出力は同じにしていなければならないとしてエンコードされた文字を維持する方法私のpythonを使用して別のエンコーディングでのWeb応答を受け付けております

例:マルク・バーベ

最後の文字がすべきhtml応答の解析後も同じままです。特別なエンコードが、それは次のエラーを投げて与えられていないがある場合、私はいくつかのケースでは、この

unicode.join(u'\n',map(unicode,item)) 

ために、次のコードを使用しています現在

: 例:マルクスRygaard、Alberte Blichfeldt、フレミングQuist、モラー

Traceback (most recent call last): 
    File "BFICrawl.py", line 20, in <module> 
    print attrName + " : " + attrValue 
    File "C:\Python27\LIB\encodings\cp437.py", line 12, in encode 
    return codecs.charmap_encode(input,errors,encoding_map) 
UnicodeEncodeError: 'charmap' codec can't encode character u'\xf8' in position 6 
0: character maps to <undefined> 

私は本当に同じ理由を見つけることができません。 Webから同じエンコードコンテンツを取得するための別の方法がありますか?

+0

で、デバッグのみを目的としてコンソールに印刷する場合は、お使いのOSやバージョンを投稿してください。 – snies

答えて

1

ウェブからunicodeオブジェクトを正常に取得しました。 unicode.join(u'\n',map(unicode,item))のような操作は必要ありません。ユニコードを出力しようとすると、問題が発生しています。

Windowsの[コマンドプロンプト]ウィンドウでスクリプトを実行しています。スクリプトがコンソールに印刷しています。コンソールエンコーディングはcp437です。これは非常に限定された(8ビット)エンコーディングです。 Møllerの2番目の文字を扱うことができず、他の文字の膨大な束

対策:IDLE(Pythonに付属)または他のIDEでスクリプトを実行してください。

これはあなたが実行している端末とOSにも依存する場合がありますあるいは、あなたが代わりにprint foo使用print repr(foo)

+0

誰でも、幻影の匿名ドライブ - Downvoterによって私の答えに嫌いを取った理由に関するアイデアを得ましたか? –

+0

私はそれがまともな答えであると思うので、考えはありません。 + 1ing。 –

1

Codepage 437(これはコード化されています)はø文字を認識しません。したがって、文字列を出力用にエンコードすることはできません。エラーメッセージにはこれがすべて表示されます。

質問:なぜDOSコンソールウィンドウで使用されるコードページに文字列をエンコードしようとしていますか?

+0

彼はですそれをやろうとする(意識的に)ではありません。 –

関連する問題