要从UTF-8转换为ASCII的Python脚本

2024-09-29 00:18:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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' codec can't decode byte 0xef in position 13: ordinal not in range(128)

我认为在encode方法中可以忽略ignore参数的错误。但似乎不是。

我愿意用其他方式来改变。


Tags: 文件inimport脚本close错误asciiopen
3条回答

UTF-8是ASCII的超集。要么你的UTF-8文件是ASCII,要么它不能被转换而不丢失。

import codecs

 ...

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

 ...

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

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

相关问题 更多 >