2017-11-05 5 views
0

Ich habe eine UTF-8-codierte Datei, die ich als CP1250-codierte Datei speichern muss. Also habe ich die folgendePython konvertieren UTF8-Datei zu 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) 

Wenn ich die Unicode-String contents in meinem Editor überprüfen, werden alle Zeichen scheint in Ordnung zu sein. Aber wenn ich die letzte Datei im Editor öffne, wird die Datei nicht korrekt geschrieben. Zum Beispiel bekomme ich anstelle des Buchstabens ř das Symbol ø. Irgendwelche Ideen, was hier schief läuft?

Dank

Antwort

2

Notepad denkt wahrscheinlich die Datei Text mit CP-1252 codiert gilt:

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

Dies ist ein Problem mit dem Editor. Verwenden Sie einen Texteditor, in dem Sie die Codierung manuell wie Notepad ++ angeben können.