![]() |
Delphi XE/XE2 Probleme mit UTF-8 Editor
Hallo Zusammen!
Hab mal nen neuen Thread aufgemacht. Thema war: Ein Probleme zeigen sich in den *.pas Dateien die jetzt auch als UTF-8 weggeschrieben werden... Dadurch gehen alle Sonderzeichen in Strings verloren... Besonders ärgerlich! Dafür hab ich noch keine Lösung, außer 2Mio Konstanten in den Source-Code bauen... Ganz toll... Hat warscheinlich wieder keiner drüber nachgedacht... Beispiel: In einem String oder Procedure Aufruf steht: DoPrinter('Û011<-Das ist eine Umschaltsequenz für den Printer'); Eigentlich steht da nach EBCDIC (DOS Zeichensatz) #219+'011'... Das 219er war halt der Ersatz für z.B. ESC Sequenzen an Nadeldrucker... Das wird konvertiert in $C3 $9B '011' <- UTF-8 Genauso die Umlaute werden in den (Const)-Strings in UTF-8 umgeformt... Damit kann der Nadeldrucker auch nix anfangen...Natürlich werden diese im IDE-Editor dann auch falsch Dargestellt weil EBCDIC Zeichen nicht richtig dargestellt werden! Grüsse Mavarik :coder: |
AW: Delphi XE/XE2 Probleme mit UTF-8 Editor
Gibt doch den String als $xx-Wert an. Evtl. bringt ein vorgesetztes AnsiString() auch was bringen.
|
AW: Delphi XE/XE2 Probleme mit UTF-8 Editor
Zitat:
Mavarik |
AW: Delphi XE/XE2 Probleme mit UTF-8 Editor
Zitat:
Bei D6 und dem Nicht-Unicode-Editor habe ich so Widestrings als Konstanten definieren können. |
AW: Delphi XE/XE2 Probleme mit UTF-8 Editor
Vielleicht hab ich da ja was falsch verstanden, aber ich arbeite sehr bequem mit EBCDIC in der IDE:
Delphi-Quellcode:
const
cEBCDICCodePage = 1141; type EBCDICString = type AnsiString(cEBCDICCodePage); const cTest: EBCDICString = 'Hallo Welt'; procedure Test(const Value: EBCDICString); var F: TFileStream; begin F := TFileStream.Create('c:\temp\test.dat', fmCreate); try F.Write(Value[1], Length(Value)); finally F.Free; end; end; begin Test(cTest); // geht genauso wie Test('Hello World'); // in beiden Fällen wird EBCDIC in den Stream geschrieben end. |
AW: Delphi XE/XE2 Probleme mit UTF-8 Editor
Liste der Anhänge anzeigen (Anzahl: 4)
Zitat:
Wenn Du mit ALT+0219 mal den großen Block (EBCDIC) rein copierst.. Bekommst Du das "Û" im Delphi Editor (z.b. Dephi 6) Das gleiche gilt für die Umlaute. Lad die Datei in XE/XE2 und die Zwiechen werden anch UTF-8 codiert... Damit ist der String unbrauchbar! Zum Test kannst Du die IDE mal auf den Font Terminal umschalten.. Ich hab mal je 2 Vorher/Nachher Grafiken angefügt. Mavarik PS.: Hundert-Tausende zeilen Source-Code stammen aus den Jahr 1986-19xx, noch aus den Zeiten von Turbo-Pascal. |
AW: Delphi XE/XE2 Probleme mit UTF-8 Editor
Kannst du denn nicht definieren das die entsprechende Quelldatei nicht UTF8 gespeichert wird? da gabs doch mal was ...
|
AW: Delphi XE/XE2 Probleme mit UTF-8 Editor
Das UTF-8 in der Datei ist vollkommen egal, da es beim Compilieren wieder dekodiert wird.
Arbeite lieber mit einem Byte-Array oder schreibe die Zeichen einzeln in die Chars des AnsiStrings. |
AW: Delphi XE/XE2 Probleme mit UTF-8 Editor
Zitat:
Delphi-Quellcode:
funktioniert hier auch tadellos.
const
cTest: EBCDICString = 'Hallöle Welt'; Was ich nicht nachvollziehen kann ist der große Block unter #219. Laut ![]() |
AW: Delphi XE/XE2 Probleme mit UTF-8 Editor
Wobei die Umwandlung von Unicode/UTF-8 nach ANSI vom jeweiligen System abhängt, also von dessen Standard-Codepage.
Und somit ist soeine Umwandlung nicht immer Bytegenau möglich, wenn die Umwandlung erst auf den Zielsystem (zur Laufzeit) geschieht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 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