Python将UTF8文件转换为CP1250

时间:2017-11-05 19:25:50

标签: python encoding

我有一个UTF-8编码的文件,我需要将其另存为CP1250编码文件。所以我做了以下

import codecs
# Read file as UTF-8
with codecs.open("utf.htm", "r", 'utf-8') as sourceFile:
    # Write file as CP1250
    with codecs.open('win1250.htm', "w", "cp1250", "xmlcharrefreplace") as targetFile:
        while True:
            contents = sourceFile.read()
            if not contents:
                break
            targetFile.write(contents)

当我在编辑器中检查unicode字符串contents时,所有字符似乎都没问题。但是当我在记事本中打开最终文件时,文件写入不正确。例如,我得到符号ř而不是字母ø。任何想法在这里出了什么问题?

由于

1 个答案:

答案 0 :(得分:2)

记事本可能认为该文件包含用CP-1252编码的文本:

>>> 'ř'.encode('cp1250').decode('cp1250')
'ř'
>>> 'ř'.encode('cp1250').decode('cp1252')
'ø'

这是记事本的问题。使用文本编辑器,您可以手动指定编码,如Notepad ++。