用于将UTF-8转换为ASCII的Python脚本

时间:2010-11-28 23:10:08

标签: python utf-8 character-encoding ascii

我正在尝试在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参数忽略错误。但似乎没有。

我对其他转换方式持开放态度。

3 个答案:

答案 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)

 ...