WritePreferenceString und Umlaute

Anfängerfragen zum Programmieren mit PureBasic.
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

WritePreferenceString und Umlaute

Beitrag von gnaps »

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
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
silbersurfer
Beiträge: 175
Registriert: 06.07.2014 12:21

Re: WritePreferenceString und Umlaute

Beitrag von silbersurfer »

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 ?
Intel Quad Core 3,2 Ghz - GTX 1060 - BlitzBasic Plus 1.48 , PureBasic 5.70 LTS / Aktuelles Projekt PureCommander
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: WritePreferenceString und Umlaute

Beitrag von Danilo »

gnaps hat geschrieben:Nachdem ich die Koordinaten dort gespeichert habe, ändern sich alle Umlaute in z.B. ü = ü
obwohl ich diese Daten gar nicht schreibe.
Die Datei wird mit UTF-8 gespeichert, so dass auch Unicodezeichen nicht verloren gehen. Siehe PB Hilfe, Übersichtseite der Preferences Lib.

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
gnaps
Beiträge: 151
Registriert: 02.09.2008 13:02

Re: WritePreferenceString und Umlaute

Beitrag von gnaps »

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
PureBasic Vollversion V 5.71 für Windows - Windows 10 (64)
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: WritePreferenceString und Umlaute

Beitrag von Danilo »

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.
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Antworten