将ISO88591转换为utf8(æå)

2024-10-01 07:36:46 发布

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

我有一个包含字母('æå')的txt文档,我希望这个脚本能够识别这些字母并正确地将它们写入csv文件。在

with codecs.open('transaksjonliste.txt', 'r', 'ISO-8859-1') as file:
    for line in file:

        line = file.readline() 
        lineS = line.encode('ISO-8859-1', 'ignore').decode('utf-8')
        splitTab = lineS.split(';')

        for s in splitTab:
            newS = s[1:-1]

        date = splitTab[0].replace('.', '/')
        insertList = [date,]
        out.writerow(date)

给出:

^{pr2}$

Tags: 文件csvin文档txt脚本fordate
1条回答
网友
1楼 · 发布于 2024-10-01 07:36:46
with codecs.open('transaksjonliste.txt', 'r', 'ISO-8859-1') as file:
    for line in file:

        line = file.readline() 
        lineS = line.encode('ISO-8859-1', 'ignore').decode('utf-8')
        splitTab = lineS.split(';')

删除line = file.readline(),您已经在用for line in file构造迭代(读取)这些行。在

^{pr2}$

这不是你想要的,因为它编码到ISO-8859-1,然后试图解码ISO-8859-1,就好像它是UTF-8一样。如果你想把'ISO-8859-1'转换成UTF-8,你通常需要这样做

 lineS = line.decode('ISO-8859-1', 'ignore').encode('utf-8')

但是,您已经在编解码器.打开()表达式。所以你只需要

  lineS = = line.encode('utf-8')

相关问题 更多 >