Gelöst: Umlaute treiben mich in die Verzweiflung ...

Anfängerfragen zum Programmieren mit PureBasic.
bin_neu_hier
Beiträge: 105
Registriert: 06.03.2019 21:52

Gelöst: Umlaute treiben mich in die Verzweiflung ...

Beitrag von bin_neu_hier »

Hi everybody,

wahrscheinlich wieder ein typisches Anfängerproblem:

Mein Progrämmchen (programmiert mit PureBasic 6.00 LTS Windows - x64) wählt weine Datei per Filerequester aus und speichert Dateiname mit Pfad in einem Textgadget. Dann werden alle Textgadgets gespeichert (Createfile). Beim Neustart des Programms werden die gespeicherten Daten gelesen (readfile) und in die Textgadgets zurückgeschrieben.

Leider wird der Dateiname "Schlüsselrückgabe.html" dann als "Schlüsselrückgabe.html" im Textgadget gezeigt.
Was mache ich da falsch?
Zuletzt geändert von bin_neu_hier am 28.07.2022 13:47, insgesamt 1-mal geändert.
Bin mit 21 erstmals mit Computern in Kontakt gekommen und konnte mich daher in meiner Jugend ganz auf den Alkohol konzentrieren. Bin nun seit fast 40 Jahren programmiertechnisch konstant auf Anfänger-Level, konnte jedoch beim Thema Alkohol eine gewisse Virtuosität erreichen.
Irgendwas muss man ja gut können.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Umlaute treiben mich in die Verzweiflung ...

Beitrag von ccode_new »

Hi!
Wenn ein Dokument als Unicode (UTF-8) abgespeichert wurde, aber als ISO 8859-1 interpretiert wird, geschieht folgendes:

Erwartete Ausgabe: ä ö ü
Wirkliche Ausgabe: ä ö ü
Das ä wurde binär gesehen als 11000011 10100100 gespeichert. Diese beiden Bytes gehören laut UTF-8 zusammen, werden in ISO 8859-1 allerdings auseinander genommen. Folglich wird aus 11000011 ein à und aus 10100100 ein ¤-Zeichen.
Lösung: Nutze konsequent UTF-8

Details folgen evtl. später.

Kurze Anmerkung:
Hast du ein Codebeispiel, wie du die Gadgets ausliest und in eine Textdatei speicherst?
Öffnest du zufällig die Textdatei mit einem Texteditor der nicht auf UTF8(oder ähnlich) eingestellt ist und speicherst diese Datei damit zufällig im falschen Format ab?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
bin_neu_hier
Beiträge: 105
Registriert: 06.03.2019 21:52

Re: Gelöst: Umlaute treiben mich in die Verzweiflung ...

Beitrag von bin_neu_hier »

Hallo ccode_new,

jep, das war's! Habe den Hilfetext

Code: Alles auswählen

#PB_UTF8   : alle Lese/Schreib-String-Operationen werden UTF-8 verwenden, wenn nicht anders angegeben (Standard).
falsch interpretiert - dachte, weils ja der Standard sei, müsse es nicht explizit angegeben sein. Aber denkste! Habs jetzt bei allen Readfiles und Createfiles und bei allen Readstrings und Writestrings explizit angegeben, funzt soweit.

Herzlichen Dank!

Das bringt mich aber nochmal zu meinem Post
"Purebasic und zippen - Probleme mit Umlauten gibts immer noch?" vom 16.06.2022 11:10
(wie verlinkt man eigentlich richtig auf einen anderen Post?)
Ist das auch ein UTF8-Problem und wenn ja, wie kann man bei AddPackFile... (da vermute ich das Problem) den Dateinamen als UTF8-String übergeben?
Bin mit 21 erstmals mit Computern in Kontakt gekommen und konnte mich daher in meiner Jugend ganz auf den Alkohol konzentrieren. Bin nun seit fast 40 Jahren programmiertechnisch konstant auf Anfänger-Level, konnte jedoch beim Thema Alkohol eine gewisse Virtuosität erreichen.
Irgendwas muss man ja gut können.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Gelöst: Umlaute treiben mich in die Verzweiflung ...

Beitrag von ccode_new »

Hmm!

Verlinken kannst du mit:

Code: Alles auswählen

[url]Hier sollte die Url stehen.[/url]
Du kannst auch im erweiterten Editormodus ganz oben auf das Kettensymbol (zwischen dem Bild und dem Tropfen) klicken.
Wenn du die Url so einfügst:

Code: Alles auswählen

[url=Hier steht die Url]Hier steht der Text zum Link[/url] 
kannst du auch einen benutzerdef. Linktext anzeigen lassen.
Außerdem gibt es den viel zu selten genutzen "Preview" Button neben dem "Submit" Knopf um eine Vorschau anzuzeigen.

Das Problem mit dem Zip-Gedöns werde ich mir heute Abend mal noch genauer betrachten.
Ich glaube nicht das es direkt an der String-Übergabe bei dem benannten PureBasic-Befehl liegt.
Welche Spracheinstellungen hast du unter Windows und verwendest du die aktuelle 7zip Version?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Gelöst: Umlaute treiben mich in die Verzweiflung ...

Beitrag von ccode_new »

:mrgreen:
Das ist ja lustig.

Also mit dem unter Windows per Standard installierten Packer/Entpacker werden komische Zeichen bei den Dateien mit Umlauten angezeigt.
Bei dem 7zip-Programmchen werden nur Punkte bei den Umlauten angezeigt.

Aber mit den PureBasic eigenen Packer-/Entpacker-Routinen kann man wenigstens die Dateinamen korrekt verwalten und anzeigen.

Also grundsätzlich kein Bug, aber trotzdem total mysteriös.

Ich habe mich mal etwas belesen und festgestellt das *.zip ein unglaublich furchtbares Format ist, wenn es um Zeichenkodierungen geht.

Das ganze Dilemma hängt auch noch irgendwie mit dem "Standard" -UTF8 zusammen.
Dabei liegt es wohl an der Überführung von Unicode zu Utf8.
Siehe: https://de.wikipedia.org/wiki/Normalisierung_(Unicode)

Tipp:
Verwende ein anderes Format (Plugin). Zum Beispiel (#PB_PackerPlugin_Lzma).
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten