我在尝试将 UTF-8 文件(包含俄语字符)转换为 ISO-8859-5 文件时遇到问题:'charmap' 编解码器无法编码位置 0 中的字符 u'\ufeff':字符映射到 .鉴于以下情况,有没有人知道出了什么问题(?):

def convert():
    try:
        import codecs
        data = codecs.open('in.txt', 'r', 'utf-8').read()
    except Exception, e:
        print e
        sys.exit(1)

    f = open('out.txt', 'w')

    try:
        f.write(data.encode('iso-8859-5'))
    except Exception, e:
        print e
    finally:
        f.close()

“in.txt”:
ё!—№%«»(эюпоиуыяафйклж;нцхз

最佳答案

feff 是一个 Byte-Order-Mark 字符。 ISO-8859-5 对此没有任何表示。

在将其编码为 ISO-8859-5 之前,您需要将其从 data 变量中剥离。

关于Python 转换为 ISO-8859-5,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2193611/

10-12 18:42