Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Immer wieder Probleme mit D2009, Indy und Sonderzeichen... (https://www.delphipraxis.net/133720-immer-wieder-probleme-mit-d2009-indy-und-sonderzeichen.html)

romber 7. Mai 2009 14:11


Immer wieder Probleme mit D2009, Indy und Sonderzeichen...
 
Hallo!

Immer wieder tauchen bei mir die Probleme mit Umlauten und Sonderzeichen in den Webseiten. Ich finde einfach keine universelle Lösung für alle Zeichenprobleme! Dazu kommt noch Delphi 2009 mit der verdammten Unicode. Ich bin total verwirrt und kriege ne Krise!

Folgendes Problem:
Mithilfe von IdHTTP bekomme ich die XML-Daten von einem Webservice.
Delphi 2007: Ich brauche nicht mal irgendwelche Konvertierungsfunktionen aufrufen, die Umlaute und Sonderzeichen werden richtig angezeigt.
Delphi 2009: Anstelle von umlauten und Sonderzeichen stehen irgendwelche komische Zeichenketten. Ich versuche mit UTF8ToAnsi die empfangenen Daten zu Konvertieren, klappt aber auch nicht zu 100%. Umlaute werden zwar konvertiert, aber auch nur die kleine Buchstaben. Z.B. anstelle von großen Umlaute und "ß" stehen nun Fragenzeichen "??" oder sonnst noch was.

Warum ist es mit Delphi 2009 so kopliziert geworden? Ich will doch nichts aussergewöhnliches, ich will doch nur den einfachen Text aus dem Internet laden und richtig anzeigen!!! Ich weiss ja, dass der einfache String seit Delphi 2009 ein UnicodeString ist. Ich versuche auch meine String-Variablen als AnsiString zu deklarieren, alles bringt nichts.

Wo ist das Problem? Was muss man mit Delphi 2009 grundsätzlich beachten, wen man eine einfache XML-Datei mit den stinknormalen deutschen Sätzen aus dem Internet laden und in einem Memo (z.B.) richtig anzeigen möchte?

himitsu 7. Mai 2009 14:33

Re: Immer wieder Probleme mit D2009, Indy und Sonderzeichen.
 
Diese "??" könnten wiederrum aus deiner eigenen String/UnicodeString-zu-AnsiString-Konvertierung stammen.

Wenn Unicodezeichen nicht nach ANSI konvertiert werden können, so werden diese per Standard in je ein "?" umgewandelt.

Was stand denn vor der Übergaben an deinen AnsiString in dem String/UnicodeString drinnen?

Bernhard Geyer 7. Mai 2009 14:38

Re: Immer wieder Probleme mit D2009, Indy und Sonderzeichen.
 
Hast du dir schon Indy-Updates gezogen. AFAIK hat hier Indy noch einige Bugs.

romber 7. Mai 2009 16:32

Re: Immer wieder Probleme mit D2009, Indy und Sonderzeichen.
 
@himitsu
Da wo nach der Konvertierung Fragezeichen stehen, waren for der Konvertierung kommische Zeichen, ähnlich wie die anstelle der Umlauten auch. Kleine Umlaute werden nach der Konvertierung richtig dargestellt, große Umlaute und ß nicht.

@Bernhard Geyer
Ich versuche jetzt die Indys zu aktualisieren. Kann es wirklich an den Indys liegen?

romber 7. Mai 2009 17:18

Re: Immer wieder Probleme mit D2009, Indy und Sonderzeichen.
 
Es lag voll tatsächlich an den Indys. Ich habe Indys aktualisiert es sieht gut aus bi jetzt.

Vielen Dank!

himitsu 7. Mai 2009 17:30

Re: Immer wieder Probleme mit D2009, Indy und Sonderzeichen.
 
vermutlich haben die Indys es als 1-Byte-Code (ANSI bzw. UTF-8) runtergeladen und es intern (vor der Konvertierung ala UTF-8-zu-ANSI schon in einen "String" geschoben .. blöd nur, daß UTF-8-Code außerhalb des ASCII-Bereichs liegt und so vermutlich einfach MultiByteToWideChar es als Ansi behandelte, statt UTF-8 und so die UTF-8-Codierung kaputtkonvertierte :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:11 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