Estoy tratando de escribir un script en python para convertir archivos utf-8 en archivos ASCII:
#!/usr/bin/env python # *-* coding: iso-8859-1 *-* import sys import os filePath = "test.lrc" fichier = open(filePath, "rb") contentOfFile = fichier.read() fichier.close() fichierTemp = open("tempASCII", "w") fichierTemp.write(contentOfFile.encode("ASCII", 'ignore')) fichierTemp.close()
Cuando ejecuto este script tengo el siguiente error:
UnicodeDecodeError: el codec ‘ascii‘ no puede decodificar el byte 0xef en la posición 13: ordinal no está en el rango (128)
Pensé que puede ignorar el error con el parámetro ignorar en el método de encoding. Pero parece que no.
Estoy abierto a otras formas de convertir.
data="UTF-8 DATA" udata=data.decode("utf-8") asciidata=udata.encode("ascii","ignore")
import codecs ... fichier = codecs.open(filePath, "r", encoding="utf-8") ... fichierTemp = codecs.open("tempASCII", "w", encoding="ascii", errors="ignore") fichierTemp.write(contentOfFile) ...
UTF-8 es un superconjunto de ASCII. Su archivo UTF-8 es ASCII, o no se puede convertir sin pérdida.