GNU/Linux >> Linux の 問題 >  >> Linux

UnicodeDecodeError:'utf8' コーデックはバイト 0x9c をデコードできません

http://docs.python.org/howto/unicode.html#the-unicode-type

str = unicode(str, errors='replace')

または

str = unicode(str, errors='ignore')

注: これにより、問題の文字が取り除かれ (無視され)、それらのない文字列が返されます。

アプリケーションで許可されていない非 ASCII 入力に対する保護として使用しているので、これは理想的なケースです。

別の方法: codecs の open メソッドを使用します ファイルを読み込むモジュール:

import codecs
with codecs.open(file_name, 'r', encoding='utf-8',
                 errors='ignore') as fdata:

エンジンを C から Python に変更するとうまくいきました。

エンジンは C:

pd.read_csv(gdp_path, sep='\t', engine='c')
<ブロック引用>

'utf-8' コーデックは位置 18 のバイト 0x92 をデコードできません:無効な開始バイト

エンジンは Python:

pd.read_csv(gdp_path, sep='\t', engine='python')

エラーはありません。


この種の問題は、私が Python 3 に移行した今、私に発生します。私は、Python 2 がファイル エンコーディングに関する問題を単純に処理しているとは思いもしませんでした。

上記のいずれもうまくいかなかった場合の違いと解決策を見つける方法について、この素晴らしい説明を見つけました。

http://python-notes.curiousefficiency.org/en/latest/python3/text_file_processing.html

つまり、Python 3 を Python 2 とできるだけ同じように動作させるには:

with open(filename, encoding="latin-1") as datafile:
    # work on datafile here

ただし、記事を読んでください。万能のソリューションはありません。


Linux
  1. Pythonインストールエラー–申し訳ありません:UnicodeError:サポートされていないエスケープはunicodedataモジュールをロードできません[解決済み]

  2. ゼロ以外のバイトを取得できるように/dev/ zeroにビットマスクを配置する方法は?

  3. Python –そのようなファイルやディレクトリはありませんが、私はそれを見ることができます!?

  1. Python でキーボードとマウスを制御するにはどうすればよいですか?

  2. LinuxでPythonでアラートダイアログを使用するにはどうすればよいですか?

  3. Watchman のインストール中に Python.h ファイルが見つかりません

  1. デフォルトで、ランダムな Linux サーバーで想定できるプログラミング言語は何ですか?

  2. .py ファイルからバイナリを取得するにはどうすればよいですか

  3. Python を使用しているはずの場所にボリュームがマウントされているかどうかを確認するにはどうすればよいですか?