Ich habe ein wenig mit dem Austausch der Schildertexte experimentiert. Wenn ich
mich auf Ascii-Zeichen einschränke ist der Spielstand zumindest wieder ladbar. Das dass 'wieder ladbar' nicht überbewertet werden sollte, wissen wir ja schon, aber damit kann es erst einmal weiter gehen
Parallel können wir das ja weiter untersuchen.
Edit: Dritte Variante klappt doch nicht. Da muss ich versehentlich ein Save ausgetestet haben, das schon konvertiert war.
Code:
#Debugging: Reset all Signs. Remove some special chars
engine = CyEngine()
signs = []
for i in range(engine.getNumSigns()-1,-1,-1):
pSign = engine.getSignByIndex(i)
sign = {
'plot': [pSign.getPlot().getX(), pSign.getPlot().getY()],
'id' : pSign.getPlayerType(),
'caption' : pSign.getCaption()
}
signs.append( sign)
engine.removeSign( pSign.getPlot(), pSign.getPlayerType() )
for sign in signs:
#caption = re.sub("[^A-z 0-9\-/]","", sign['caption']) #ok
#caption = re.sub("[^A-z 0-9\-/ö]","", sign['caption']) #ok with '# -*- coding: latin-1 -*-', but both ö differs
#caption = sign['caption'].encode('ascii', 'ignore') #ok, no umlautes
caption = sign['caption'].encode('iso8859_15', 'ignore') # save sometimes corrupt
engine.addSign( gc.getMap().plot( sign['plot'][0], sign['plot'][1]), sign['id'], caption.__str__() )