【发布时间】:2011-05-17 00:39:10
【问题描述】:
我正在尝试在 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 参数忽略错误。但好像没有。
我对其他转换方式持开放态度。
【问题讨论】:
-
问题是你从一开始就没有解码。
-
您收到错误是因为该字符不存在于 ASCII 字符集中,因此无法转换。有时您可以将 UTF8 字符映射到 ASCII 中最接近的视觉匹配字符,例如
é到e,但这会改变单词的含义。您必须决定该路径是否适用于您的应用程序。 -
这似乎是个非常糟糕的主意!
标签: python utf-8 character-encoding ascii