Hallo Forum,
Ich habe hier ein Problem.
ich habe für mein Programm eine Preference-Datei für die Einstellungen.
In dieser Datei habe ich auch Adress-Inforamtionen mit Umlauten.
In dieser Datei speichere ich beim Programmende die Koordinaten vom Hauptfenster mit
WritePreferenceString("ein0",Einstellung.s(0)).
In der Stingvariable Einstellung.s(0) steht die Koordinatenzahl.
Nachdem ich die Koordinaten dort gespeichert habe, ändern sich alle Umlaute in z.B. ü = ü
obwohl ich diese Daten gar nicht schreibe.
Ändere ich die Umlaute wieder mit meinem Texteditor zurück und speicher dann wieder über mein Programm
die Koordinaten, werden die Umlaute wieder geändert.
Wieso das ?
Was muss ich tun um das zu verhindern.
Gruß
gnaps
WritePreferenceString und Umlaute
WritePreferenceString und Umlaute
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
- silbersurfer
- Beiträge: 175
- Registriert: 06.07.2014 12:21
Re: WritePreferenceString und Umlaute
hm hört sich so an als wenn es was mit Ascii und Unicode zu tun hat
Wie hast du die Datei denn erstellt nur mit den Purebasic eigen befehlen ?
Wie hast du die Datei denn erstellt nur mit den Purebasic eigen befehlen ?
Intel Quad Core 3,2 Ghz - GTX 1060 - BlitzBasic Plus 1.48 , PureBasic 5.70 LTS / Aktuelles Projekt PureCommander
Re: WritePreferenceString und Umlaute
Die Datei wird mit UTF-8 gespeichert, so dass auch Unicodezeichen nicht verloren gehen. Siehe PB Hilfe, Übersichtseite der Preferences Lib.gnaps hat geschrieben:Nachdem ich die Koordinaten dort gespeichert habe, ändern sich alle Umlaute in z.B. ü = ü
obwohl ich diese Daten gar nicht schreibe.
Code: Alles auswählen
*mem = AllocateMemory(5)
If *mem
PokeS(*mem,"ü",5,#PB_UTF8)
Debug PeekS(*mem,5,#PB_Ascii)
Debug PeekS(*mem,5,#PB_UTF8)
EndIf
Debug "-------------------------"
Debug PeekS(?label1,2,#PB_UTF8)
DataSection
label1:
Data.b 'Ã','¼'
EndDataSection
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Re: WritePreferenceString und Umlaute
Hallo nochmal,
was komisch ist, mein anderes PureBasic Programm macht das nicht.
Das andere Programm lässt die Umlaute in der Prefs-Datei so wie diese sind.
Wieso das denn ?
gruß
gnaps
was komisch ist, mein anderes PureBasic Programm macht das nicht.
Das andere Programm lässt die Umlaute in der Prefs-Datei so wie diese sind.
Wieso das denn ?
gruß
gnaps
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Re: WritePreferenceString und Umlaute
Kompilierst Du das eine Programm noch im alten ASCII-Modus, aber das Neue mit Unicode?
Preferences-Dateien werden im Unicode-Modus als UTF8 abgespeichert, so dass alle Zeichen
richtig sein sollten (mir schwirrt etwas im Kopf herum, dass da kein korrekter BOM geschrieben
wird, ein bekannter Bug), aber im veralteten ASCII-Modus wird wohl nur ASCII geschrieben,
was von der verwendeten Codepage auf dem System abhängig ist - weshalb der ASCII-Modus nicht zu empfehlen ist.
Preferences-Dateien werden im Unicode-Modus als UTF8 abgespeichert, so dass alle Zeichen
richtig sein sollten (mir schwirrt etwas im Kopf herum, dass da kein korrekter BOM geschrieben
wird, ein bekannter Bug), aber im veralteten ASCII-Modus wird wohl nur ASCII geschrieben,
was von der verwendeten Codepage auf dem System abhängig ist - weshalb der ASCII-Modus nicht zu empfehlen ist.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck