![]() |
Codierung und Dekodierung von Umlauten
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? |
AW: Codierung und Dekodierung von Umlauten
da wir nicht wissen wie die Daten ursprünglich kodiert sind wissen wirs auch nicht sicher,
aber es sieht sehr nach einer UTF8Encode aus |
AW: Codierung und Dekodierung von Umlauten
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' |
AW: Codierung und Dekodierung von Umlauten
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:
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.
Var
Quelle : String; Ziel : UTF8String; begin Quelle := 'Zurücksetzen'; Ziel := UTF8Encode (Quelle); end; |
AW: Codierung und Dekodierung von Umlauten
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. |
AW: Codierung und Dekodierung von Umlauten
Zitat:
|
AW: Codierung und Dekodierung von Umlauten
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. |
AW: Codierung und Dekodierung von Umlauten
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: ![]() 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. |
AW: Codierung und Dekodierung von Umlauten
Zitat:
Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz