テキスト ファイルに保存されているデータを操作しようとすると、次のエラーが発生しました:
Traceback (most recent call last): File "SCRIPT LOCATION", line NUMBER, in <module> text = file.read() File "C:\Python31\lib\encodings\cp1252.py", line 23, in decode return codecs.charmap_decode(input,self.errors,decoding_table)[0] UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 2907500: character maps to `<undefined>`
このエラーは、想定されているエンコード (CP1252) とファイルの実際のエンコードの不一致が原因で発生します。この問題を解決するには、正しいエンコーディングを特定し、ファイルを開くときに明示的に指定する必要があります。
ファイル エンコーディングの特定
質問に記載されているように、ファイルのエンコーディングは非常に重要です。残念ながら、これは手動で行う必要があります。一般的なエンコーディングには、Latin-1 と UTF-8 が含まれます。ただし、0x90 は Latin-1 では有効な文字ではないため、UTF-8 が有力な候補です。
エンコーディングの指定
エンコーディングを決定したらファイルを開くときに、エンコーディング パラメーターを使用して指定できます。
file = open(filename, encoding="utf8")
正しいエンコーディングを指定すると、Python はテキスト ファイルを適切にデコードでき、「UnicodeDecodeError」例外が発生することなくその内容を操作できるようになります。
以上がPython でテキスト ファイルを読み取るときに発生する「UnicodeDecodeError」を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。