0

Python の mechanize モジュールを使用して Web ページ (ロシア語) をダウンロードしようとしています (私のコンピューターは英語のみを使用しています)。次のエラーが表示されます

UnicodeEncodeError: 'ascii' codec can't encode characters in position 50-59

これらのタイプのエラーを修正する方法またはその意味を誰か教えてもらえますか?

4

1 に答える 1

0

簡単に言うと、元の文字列は ASCII でエンコードされていません。つまり、文字を印刷しようとすると、元の文字コードが ASCII スコープ外であるため、Python は何をすべきかわかりません。

ASCII テーブルとそれがサポートする文字は次のとおりです: http://www.asciitable.com/

たとえば、 Python - エンコーディング文字列 - スウェーデン語の文字を使用して文字を変換できます。


または、次のことができます。

(これは多くの問題のエンコーディングに関する解決策です)


編集: C:\Python??\Lib\Site.py "del sys.setdefaultencoding" を "pass" に置き換えます: そのようです

次に、
これをコードの先頭に置きます:

sys.setdefaultencoding('latin-1')

スウェーデン語/非 UTF8 互換文字の修正の聖杯。latin-1 がすべてのロシア語文字をカバーするかどうかはわかりませんが、それが可能なエンコーディングをおそらく知らない場合 (例: ISO-8859-15 など)

于 2013-03-21T21:00:13.943 に答える