我有一个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
时,所有字符似乎都没问题。但是当我在记事本中打开最终文件时,文件写入不正确。例如,我得到符号ř
而不是字母ø
。任何想法在这里出了什么问题?
由于
答案 0 :(得分:2)
记事本可能认为该文件包含用CP-1252编码的文本:
>>> 'ř'.encode('cp1250').decode('cp1250')
'ř'
>>> 'ř'.encode('cp1250').decode('cp1252')
'ø'
这是记事本的问题。使用文本编辑器,您可以手动指定编码,如Notepad ++。