Python の mechanize モジュールを使用して Web ページ (ロシア語) をダウンロードしようとしています (私のコンピューターは英語のみを使用しています)。次のエラーが表示されます
UnicodeEncodeError: 'ascii' codec can't encode characters in position 50-59
これらのタイプのエラーを修正する方法またはその意味を誰か教えてもらえますか?
Python の mechanize モジュールを使用して Web ページ (ロシア語) をダウンロードしようとしています (私のコンピューターは英語のみを使用しています)。次のエラーが表示されます
UnicodeEncodeError: 'ascii' codec can't encode characters in position 50-59
これらのタイプのエラーを修正する方法またはその意味を誰か教えてもらえますか?
簡単に言うと、元の文字列は 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 など)