UnicodeDecodeError: el códec ‘charmap’ no puede descodificar el byte X en la posición Y: los mapas de caracteres a

Estoy tratando de obtener un progtwig de Python 3 para hacer algunas manipulaciones con un archivo de texto lleno de información. Sin embargo, cuando bash leer el archivo, aparece el siguiente error:

Traceback (most recent call last): File "SCRIPT LOCATION", line NUMBER, in  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  

Si alguien pudiera ayudarme para tratar de superar este problema, estaría muy agradecido.

El archivo en cuestión no usa la encoding CP1252 . Está usando otra encoding. Cuál tienes que resolver tú mismo. Los más comunes son Latin-1 y UTF-8 . Como 0x90 en realidad no significa nada en Latin-1 , es más probable que sea UTF-8 (donde 0x90 es un byte de continuación).

Usted especifica la encoding cuando abre el archivo:

 file = open(filename, encoding="utf8") 

Como una extensión de @LennartRegebro respuesta:

Si no puede decir qué encoding es y la solución anterior no funciona (no es utf8 ) y se encontró simplemente adivinando: hay herramientas en línea que podría usar para identificar qué encoding es. No son perfectos, pero generalmente funcionan bien. Después de descifrar la encoding, debería poder usar la solución anterior.

EDITAR: (Copiado del comentario)

Un editor de texto bastante popular Sublime Text tiene un comando para mostrar la encoding si se ha configurado …

  1. Ir a View -> Show Console (o Ctrl + ` )

enter image description here

  1. Escriba en el campo en la parte inferior de view.encoding() y espere lo mejor (no pude obtener nada Undefined pero tal vez tendrá mejor suerte …)

enter image description here

Solo para agregar en caso de que file = open(filename, encoding="utf8") no funcione try file = open(filename, errors='ignore')

Todo está bien