OT: Python diakritika na En windows

Pavel Hudeček edizon na seznam.cz
Pondělí Únor 20 13:41:23 CET 2023


Dobrý den všem,
mějme files_list.py generovaný C programem po vhození fajlů do jeho okna:
filesList = [ # dlouhý list s třeba 800 položkama
...
r"O:\Calibrations\TPX3\C05-W0096_SN1229_JN0886_Si_300u_MiniPIX_Slovenská 
technická univerzita v Bratislavě\C05-W0096.h5",
...
]

a pak skript, který mj. obsahuje:
import files_list as FL
....
okFilesListF  = open(outFilesDirName + "\\" + okFilesListName, "w")
....
for fName in FL.filesList: # extrakce dat
     ....
     okFilesListF.write(devInfo["chIDs"] + ": " + fName + "\n")
....

Přičemž devInfo["chIDs"] obsahuje stringy jako "C05-W009"

Na počítačích z w10 nebo 11 CZ to funguje, ale na w10 EN to umře když 
ukládá informaci, že fajl se Slovenskou technickou univerzitou byl 
úspěšně zpracován:-)

Napíše to, že chyba nastala na tom řádku s okFilesListF.write
s pokračováním v souboru
lib\encodings\cp1252.py, line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u11b' in 
position 114: character maps to <undefined>

Je nějakej způsob, jak udělat, aby ten string přímo zapsal bez konvertění?

Díky,
PH


Další informace o konferenci Hw-list