Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Unicode-Daten richtig empfangen??? (https://www.delphipraxis.net/148053-unicode-daten-richtig-empfangen.html)

romber 21. Feb 2010 14:11


Unicode-Daten richtig empfangen???
 
Hallo!

Ich sende mit IdHTTP Anfragen an einen Webservice an und erhalte die Daten, die auch Unicode-Zeichen enthalten. Diese Zeichen gehen verloren und werden durch Fragezeichen ersetzt. Wie empfange ich die Unicode-Daten richtig?

Delphi-Quellcode:
ResponseStream := TStringStream.create;
RequestStream := TStringStream.Create;
RequestStream.WriteString(SERVICE_REQUEST_XML);
try
  http.Post(WEB_SERVICE_URL, RequestStream, ResponseStream);
except
...
end;

mjustin 21. Feb 2010 14:15

Re: Unicode-Daten richtig empfangen???
 
Ist es die aktuelle Indy Version (10.5.7)?

romber 21. Feb 2010 14:18

Re: Unicode-Daten richtig empfangen???
 
Ganz aktuell ist die Version nicht. Es ist aber nicht die fehlerhafte Indy-Version, die mit Delphi 2009 ausgeliefert wurde.

Luckie 21. Feb 2010 15:07

Re: Unicode-Daten richtig empfangen???
 
Unterstützt die Version, die du benutzt denn schon Unicode?

mjustin 21. Feb 2010 15:11

Re: Unicode-Daten richtig empfangen???
 
Wie sieht die Response aus, steht dort ein Encoding, das auch zu den Daten passt?

Mit http://donsproxy.moneybender.com/ kann man das recht einfach aufzeichnen

romber 21. Feb 2010 15:29

Re: Unicode-Daten richtig empfangen???
 
Zitat:

Zitat von Luckie
Unterstützt die Version, die du benutzt denn schon Unicode?

Ja, denke ich schon. Als ich Delphi 2009 installiert habe, ging nichts mit Unicode. Dann habe ich hier im Forum gelesen, dass ein Indy-Update her muss. Nach dem Update ging's.

Zitat:

Zitat von mjustin
Wie sieht die Response aus, steht dort ein Encoding, das auch zu den Daten passt?

Bei Response handelt es sich um XML-Daten. XML-Header enthält keine Encoding-Attribute.

romber 21. Feb 2010 16:21

Re: Unicode-Daten richtig empfangen???
 
Ich habe gerade die neuste Indy-Version installiert, leider ist das Problem immer noch da.

mjustin 21. Feb 2010 16:53

Re: Unicode-Daten richtig empfangen???
 
Die HTTP Header sind in Ordnung? (Z.B. Content-Type)?

IdHTTP explizit auf HTTP 1.1 umstellen (siehe Hinweis in IdHTTP.pas) würde ich noch versuchen.

mjustin 21. Feb 2010 16:59

Re: Unicode-Daten richtig empfangen???
 
Zitat:

Zitat von romber
Bei Response handelt es sich um XML-Daten. XML-Header enthält keine Encoding-Attribute.

Delphi-Quellcode:
<?xml version="1.0" [b]encoding="UTF-8"[/b] standalone="yes"?>
<verzeichnis>
     <titel>Wikipedia Städteverzeichnis</titel>
     <eintrag>
          <stichwort>Genf</stichwort>
          <eintragstext>Genf ist der Sitz von ...</eintragstext>
     </eintrag>
     <eintrag>
          <stichwort>Köln</stichwort>
          <eintragstext>Köln ist eine Stadt, die ...</eintragstext>
     </eintrag>
</verzeichnis>
Das 'encoding' ist ein Attribut und es steht in der XML-Deklaration (optional) ;)

Daneben gibt es in der Response eventuell auch noch eine Encoding Angabe im HTTP Header, die dazu passen muss.

romber 21. Feb 2010 19:20

Re: Unicode-Daten richtig empfangen???
 
Zitat:

Zitat von mjustin
Daneben gibt es in der Response eventuell auch noch eine Encoding Angabe im HTTP Header, die dazu passen muss.

UTF-8 steht im Header.
Eingentlich vertsehe ich das alles nicht ganz. Umlaute und sogar seltene spanische und französiche werden angezeigt, das sind doch auch alles Unicode-Zeichen, oder?
Noch Ideen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr.
Seite 1 von 2  1 2      

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