我正在尝试在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()
运行此脚本时出现以下错误:
UnicodeDecodeError:'ascii'编解码器 无法解码13位的字节0xef: 序数不在范围内(128)
我认为可以使用encode方法中的ignore参数忽略错误。但似乎没有。
我对其他转换方式持开放态度。
答案 0 :(得分:49)
data="UTF-8 DATA"
udata=data.decode("utf-8")
asciidata=udata.encode("ascii","ignore")
答案 1 :(得分:8)
UTF-8是ASCII的超集。您的UTF-8文件是ASCII,或者无法在不丢失的情况下进行转换。
答案 2 :(得分:7)
import codecs
...
fichier = codecs.open(filePath, "r", encoding="utf-8")
...
fichierTemp = codecs.open("tempASCII", "w", encoding="ascii", errors="ignore")
fichierTemp.write(contentOfFile)
...