AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Verzeichnisnamen mit Umlauten
Thema durchsuchen
Ansicht
Themen-Optionen

Verzeichnisnamen mit Umlauten

Ein Thema von SittingDuck · begonnen am 1. Mär 2012 · letzter Beitrag vom 2. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2      
SittingDuck

Registriert seit: 11. Jan 2006
Ort: Leverkusen
159 Beiträge
 
Delphi 2010 Professional
 
#1

Verzeichnisnamen mit Umlauten

  Alt 1. Mär 2012, 02:35
Hallo zusammen.

Ich bekomme aus einer SQLite Datenbank einen Dateinamen geliefert (wie ich meine) im UTF8 Format und der soll mal am Ende so aussehen: "Base Flats Ändern.txt". Aktuell sieht er jedoch noch so aus: "Base Flats Ändern.txt". Als Hexwerte dargestellt, ergibt der Name der Datei (nicht der Inhalt, der ist uninteressant) folgende Zahlenreihe: "42 61 73 65 20 46 6C 61 74 73 20 41 CC 88 6E 64 65 72 6E 2E 74 78 74".

Das Problem ist der Umlaut "Ä" bzw. die "41 CC 88". Wenn ich die Funktion UTF8ToString auf diesen Text anwende, kommt zwar am Ende ein "Ä" raus, aber irgendwas stimmt da nicht: "Base Flats Ändern.txt". Die Ä-Pünktchen sind irgendwie extra, hinter dem 'A', obwohl es wie ein "Ä" aussieht. Auf jeden Fall ist es nicht das Gleiche, wie ein normales "Ä" mit sämtlichen daraus resultierenden Konsequenzen.

Wo ist mein Denkfehler?
Ciao ... SittingDuck
iPhone Backup und mehr: iTwin v3.9 Beta ... Alternative Startleiste: Launcher v3.8 !
  Mit Zitat antworten Zitat
Benutzerbild von Coffeecoder
Coffeecoder

Registriert seit: 27. Apr 2011
242 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Verzeichnisnamen mit Umlauten

  Alt 1. Mär 2012, 08:13
.. der soll mal am Ende so aussehen: "Base Flats Ändern.txt". Aktuell sieht er jedoch noch so aus: "Base Flats Ändern.txt". ...
Hi, und warum nicht einfach : "Base Flats Aendern.txt"?
Ich finde im Allgemeinen sollte man Umlaute vermeiden, sowohl bei Verzeichnissnamen,in Email-Adressen und so weiter...
Coffeecoder
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Verzeichnisnamen mit Umlauten

  Alt 1. Mär 2012, 08:28
Das Problem ist der Umlaut "Ä" bzw. die "41 CC 88".
De-UTF8t kommt Hex-Technisch 0041 0308 raus.
D.h A + ̈ sind 2 Zeichen.
Das ̈ wir im UTF8-Standard so beschrieben:

COMBINING DIAERESIS (Dialytika)
= double dot above, umlaut
= Greek dialytika
= double derivative
x (diaeresis - 00A8)
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
SittingDuck

Registriert seit: 11. Jan 2006
Ort: Leverkusen
159 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Verzeichnisnamen mit Umlauten

  Alt 1. Mär 2012, 12:38
Hallo nochmal ...

@Coffeecoder: Ja klar, wenns nach mir ginge, dann würde ich das auch ohne Umlaute regeln ... geht aber leider in diesem Fall nicht.

@Bernhard Geyer: Danke für die Erklärung.

Gibt es denn keine Konvertierungs-Funktion, die aus "Base Flats Ändern.txt" wieder eine normale Darstellung macht, also mit einem simplen "Ä"? UTF8ToString liefert ja leider dieses Dialytika-Ä ...
Ciao ... SittingDuck
iPhone Backup und mehr: iTwin v3.9 Beta ... Alternative Startleiste: Launcher v3.8 !
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Verzeichnisnamen mit Umlauten

  Alt 1. Mär 2012, 13:26
Gibt es denn keine Konvertierungs-Funktion, die aus "Base Flats Ändern.txt" wieder eine normale Darstellung macht, also mit einem simplen "Ä"? UTF8ToString liefert ja leider dieses Dialytika-Ä ...
UTF8ToString macht das schon korrekt. Wie sind denn die Daten reingekommen? Dort wird schon diese Daten mit den 2-Zeichen Ä eingetragen worden sein

Ansonsten selbst einen "simplyfy"-Funktion schreiben. Sowas wird es vermutlich nicht fertig geben.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Gustav.R
(Gast)

n/a Beiträge
 
#6

AW: Verzeichnisnamen mit Umlauten

  Alt 1. Mär 2012, 15:25
Gibt es denn keine Konvertierungs-Funktion, die aus "Base Flats Ändern.txt" wieder eine normale Darstellung macht, also mit einem simplen "Ä"? UTF8ToString liefert ja leider dieses Dialytika-Ä ...
UTF8ToString macht das schon korrekt. Wie sind denn die Daten reingekommen? Dort wird schon diese Daten mit den 2-Zeichen Ä eingetragen worden sein

Ansonsten selbst einen "simplyfy"-Funktion schreiben. Sowas wird es vermutlich nicht fertig geben.
Als D5'ler bin ich da wohl nicht kompetent genug, um das Geraffel zu durchleuchten, aber ich würde auf den String "Base Flats Ändern.txt" halt mal sieben StringReplaces loslassen für AÖÜäöüß

Ob das was bringt, ist natürlich völlig unklar. Was liefert die SQLite Datenbank denn sonst noch an ungültigen Daten?

GG
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Verzeichnisnamen mit Umlauten

  Alt 1. Mär 2012, 15:34
Als D5'ler bin ich da wohl nicht kompetent genug, um das Geraffel zu durchleuchten, aber ich würde auf den String "Base Flats Ändern.txt" halt mal sieben StringReplaces loslassen für AÖÜäöüß
Und die 50000 anderen Zeichen wie z.B. Arabisch, Chinesich, ....?

Was liefert die SQLite Datenbank denn sonst noch an ungültigen Daten?
Wies sollen die Daten ungültig sein? Wenn das schreibende Programm genau dies rein geschrieben hat muss das auch so wieder raus kommen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Gustav.R
(Gast)

n/a Beiträge
 
#8

AW: Verzeichnisnamen mit Umlauten

  Alt 1. Mär 2012, 15:41
Zitat:
Wies sollen die Daten ungültig sein? Wenn das schreibende Programm genau dies rein geschrieben hat muss das auch so wieder raus kommen.
Genau!

Hast Du eine besseren Vorschlag als mein siebenfaches StringReplace?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Verzeichnisnamen mit Umlauten

  Alt 1. Mär 2012, 15:49
Wenn ich verhindern will das Sonderzeichen (alles über 0x007F) als Verzeichnis/Dateiname verwendet werden soll nimm ich oft eine URLEncode-Funktion. D.h. ich Codiere die Daten so wie es ein Webserver in seiner URL auch machen würde.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Gustav.R
(Gast)

n/a Beiträge
 
#10

AW: Verzeichnisnamen mit Umlauten

  Alt 1. Mär 2012, 15:55
Wenn ich verhindern will das Sonderzeichen (alles über 0x007F) als Verzeichnis/Dateiname verwendet werden soll nimm ich oft eine URLEncode-Funktion. D.h. ich Codiere die Daten so wie es ein Webserver in seiner URL auch machen würde.
Schön, daß Du so codierst. Aber der TE bekommt die Daten bzw. den Dateinamen "so geliefert". Also, was tun?

MfG
Gustav
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz