Подтвердить что ты не робот

Python script для преобразования из UTF-8 в ASCII

Я пытаюсь написать script в python для преобразования файлов utf-8 в файлы 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()

Когда я запускаю этот script, у меня есть следующая ошибка:

UnicodeDecodeError: кодек 'ascii' не может декодировать байт 0xef в позиции 13: порядковый номер не в диапазоне (128)

Я думал, что может игнорировать ошибку с параметром ignore в методе кодирования. Но это не так.

Я открыт для других способов конвертирования.

4b9b3361

Ответ 1

data="UTF-8 DATA"
udata=data.decode("utf-8")
asciidata=udata.encode("ascii","ignore")

Ответ 2

import codecs

 ...

fichier = codecs.open(filePath, "r", encoding="utf-8")

 ...

fichierTemp = codecs.open("tempASCII", "w", encoding="ascii", errors="ignore")
fichierTemp.write(contentOfFile)

 ...

Ответ 3

UTF-8 является надмножеством ASCII. Либо ваш файл UTF-8 является ASCII, либо он не может быть преобразован без потерь.