AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Codierung und Dekodierung von Umlauten
Thema durchsuchen
Ansicht
Themen-Optionen

Codierung und Dekodierung von Umlauten

Ein Thema von Gerd01 · begonnen am 22. Sep 2013 · letzter Beitrag vom 29. Sep 2013
Antwort Antwort
Gerd01

Registriert seit: 18. Mär 2005
Ort: NRW
117 Beiträge
 
Delphi XE2 Professional
 
#1

Codierung und Dekodierung von Umlauten

  Alt 22. Sep 2013, 17:00
Im Moment raucht mir der Kopf und ich weiss vor lauter Encoding und Decoding Funktionen nixht mehr weiter

Wie heisst die Codierungs-Funktion in Delphi in der ich von der Zeichenkette

Zurücksetzen

auf diese Zeichenkette

Zurücksetzen

komme?
  Mit Zitat antworten Zitat
hstreicher

Registriert seit: 21. Nov 2009
220 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Codierung und Dekodierung von Umlauten

  Alt 22. Sep 2013, 17:09
da wir nicht wissen wie die Daten ursprünglich kodiert sind wissen wirs auch nicht sicher,

aber es sieht sehr nach einer UTF8Encode aus
  Mit Zitat antworten Zitat
Gerd01

Registriert seit: 18. Mär 2005
Ort: NRW
117 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Codierung und Dekodierung von Umlauten

  Alt 22. Sep 2013, 17:18
Hier mein Beispiel:
Code:
Var
  Quelle : String;
  Ziel  : String;
begin
  Quelle := 'Zurücksetzen';
  Ziel  := UTF8Encode (Quelle);
end;

Ziel ist dabei als Ergebnis immer noch 'Zurücksetzen' und nicht 'Zurücksetzen'
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#4

AW: Codierung und Dekodierung von Umlauten

  Alt 22. Sep 2013, 20:17
Ich würde raten, dass Du mit Delphi>=2009 arbeitest. Dann wird durch die Zuweisung Ziel := UTF8Encode(Quelle) der UTF8String intern sofort wieder in einen UTF16-String umgesetzt (Warnung des Compilers: "Implizite String-Umwandlung von 'RawByteString' zu 'string'"). Du könntest es so versuchen:

Delphi-Quellcode:
Var
   Quelle : String;
   Ziel : UTF8String;
 begin
   Quelle := 'Zurücksetzen';
   Ziel := UTF8Encode (Quelle);
 end;
Du wirst aber weiterhin nicht den String 'Zurücksetzen' sehen, denn der Debugger erkennt natürlich die Kodierung und zeigt dir korrekt die Umlaute an. Wenn Du das Ergebnis sehen willst, könntest du "Ziel" in eine Datei kopieren und diese dir dann mit einem Editor ansehen, der die Datei als Ansi-Datei (Codepage 1252) statt als UTF8-Datei anzeigt.
  Mit Zitat antworten Zitat
Gerd01

Registriert seit: 18. Mär 2005
Ort: NRW
117 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Codierung und Dekodierung von Umlauten

  Alt 24. Sep 2013, 08:32
Ich werde es "von Hand" mit stringreplace durchführen. Muß ja nur ä,ö,ü,ß und Ä,Ö,Ü umsetzen.

Es geht darum GNU gettext für Übersetzungen zu verwenden. Mein Ausgangspassis sind Deutsche Strings, die UTF-8 kodiert sind.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Codierung und Dekodierung von Umlauten

  Alt 24. Sep 2013, 08:45
Ich werde es "von Hand" mit stringreplace durchführen. Muß ja nur ä,ö,ü,ß und Ä,Ö,Ü umsetzen.

Es geht darum GNU gettext für Übersetzungen zu verwenden. Mein Ausgangspassis sind Deutsche Strings, die UTF-8 kodiert sind.
Und wieso eine Krückenlösung nehmen wenn mit der Funktion UTF8Encode eine richtige Lösung existiert?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Gerd01

Registriert seit: 18. Mär 2005
Ort: NRW
117 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Codierung und Dekodierung von Umlauten

  Alt 24. Sep 2013, 17:53
Ich habe eine neues Übersetzungstool gesucht und bin bei gnugettext für Delphi gelandet.

Da ich deutsche Strings in meinem Programm habe muss ich die Übersetzungsschablone mit der Option "Erlaube nicht ASC-Text" erstellen.

In der default.po steht es dann zum Beispiel für einen Resourcestring so:

#. Programmer's name for it: _RSInfoReset
msgid "Zurücksetzen"
msgstr "Reset"

Nur wenn ich an die Funktion gettext "Zur¼cksetzen" übergebe wir die korrekte Übersetzung "Reset" übergeben.
Also bastele ich aus Zurücksetzen die Übergabe: "Zur¼cksetzen".

Mit UTF8Endoce und UTF8String geht das leider eben nicht.

So ganz glücklich bin ich damit aber nicht.
  Mit Zitat antworten Zitat
rwalper

Registriert seit: 6. Sep 2006
48 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Codierung und Dekodierung von Umlauten

  Alt 24. Sep 2013, 18:39
Hallo Gerd,

normalerweise brauchst Du nichts Encoden oder Decoden, wenn Du die aktuelle gnugettext.pas verwendest.

Diese findest Du im Unterverzeichnis "examples", wenn DU Dir folgendes SVN-Archiv holst:
https://svn.code.sf.net/p/dxgettext/code/trunk

Außerdem musste ich das Projekt "dxgettext" neu übersetzen und diese exe verwenden, damit auch UTF8-kodierte pas-Dateien vernünftig gescannt werden konnten. (Ich verwende gerade XE3)

Vielleicht habe ich mich auch nur dämlich angestellt, denn ich habe nur die "alte" dxgettext-1.2.2.exe gefunden und installiert. Vielleicht gibt es ja irgendwo noch ein aktuelles Binärpaket zum Download.

Jedenfalls funktioniert es so bei mir.
  Mit Zitat antworten Zitat
Gerd01

Registriert seit: 18. Mär 2005
Ort: NRW
117 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Codierung und Dekodierung von Umlauten

  Alt 29. Sep 2013, 08:47
Hallo Gerd,


Außerdem musste ich das Projekt "dxgettext" neu übersetzen und diese exe verwenden, damit auch UTF8-kodierte pas-Dateien vernünftig gescannt werden konnten. (Ich verwende gerade XE3)
Dein Tipp war gooldrichtig. Die UTF-8 Kodierung stimmt jetzt.
Danke
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:58 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