utf8 open escape windows python-3.x unicode file-io decode

windows - open - UnicodeDecodeError: el codec ''charmap'' no puede decodificar el byte X en la posición Y: el carácter se asigna a<undefined>



unicode escape python (4)

Como una extensión a la respuesta de @LennartRegebro:

Si no puede saber qué es la codificación 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é es la codificación. No son perfectos, pero por lo general funcionan bien. Después de que descubras la codificación, deberías poder usar la solución anterior.

EDITAR: (Copiado del comentario)

Un editor de texto bastante popular Sublime Text tiene un comando para mostrar la codificación si se ha configurado ...

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

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

Estoy intentando que un programa Python 3 realice algunas manipulaciones con un archivo de texto con información. Sin embargo, al intentar leer el archivo, aparece el siguiente error:

Seguimiento (última llamada más reciente): Archivo "SCRIPT LOCATION", línea NÚMERO, en texto = archivo.read () Archivo "C: / Python31 / lib / encodings / cp1252.py", línea 23, en el código de decodificación codecs.charmap_decode (input, self.errors, decoding_table) [0] UnicodeDecodeError: el códec ''charmap'' no puede decodificar el byte 0x90 en la posición 2907500: el carácter se asigna a

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


Me doy cuenta de que esta es una publicación antigua, pero para cualquier persona que tenga problemas con el tipo de codificación de un archivo de MS Word (como lo estaba), hay un conjunto diferente de herramientas para usar, consulte esta biblioteca:

https://python-docx.readthedocs.io/en/latest/

hth alguien

editar: En caso de que se cambie el enlace, la biblioteca se llama python-docx (Google it). Funciona con archivos .docx (por lo que no hay archivos .doc de <= Word 2003) y está en la versión 0.8.7 a partir de la fecha en que se escribe esto. Estaba luchando con tipos de codificación, y esto simplificó las cosas.


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

Todo está bien


El archivo en cuestión no está utilizando la codificación CP1252 . Está utilizando otra codificación. ¿Cuál tienes que averiguar 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 codificación cuando abre el archivo:

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