Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi MSXML und Umlaute (https://www.delphipraxis.net/95120-msxml-und-umlaute.html)

the-networker 1. Jul 2007 12:15


MSXML und Umlaute
 
Ich habe mir die MSXML Typelibrary importiert und benutze
sie um mit XMLHTTP.send einen String zu verschicken.
Das funktioniert so auch gut, aber leider werden Umlaute
nicht übertragen.
Hatte jemand schon das gleiche Problem?

Gruß
Uwe

Bernhard Geyer 1. Jul 2007 12:19

Re: MSXML und Umlaute
 
Was kommt an anstatt des Umlauts?

the-networker 1. Jul 2007 12:33

Re: MSXML und Umlaute
 
Ich kann mir mit WireShark die Datenpakete anschauen und
erhalte für ein 'ü' zwei nicht darstellbare Zeichen hex 3CBC

Uwe

Chewie 1. Jul 2007 12:49

Re: MSXML und Umlaute
 
In welcher Kodierung (UTF-8, ISO-8859-1 etc.) liegen die Umlaute vor? Welche Kodierung ist in der XML-Datei angegeben?

Das muss übereinstimmen, dann sollte das auch prinzipiell funktionieren.

the-networker 1. Jul 2007 13:17

Re: MSXML und Umlaute
 
Ich habe jetzt im xml-file '<?xml version='1.0' encoding='ISO-8859-1' ?>' eingestellt.
Nun wird aus: Senden einer SMS über http://www.smsteknik.se mit Delphi!
folgendes generiert: Senden einer SMS \303\274ber http://www.smsteknik.se mit Delphi!

Uwe

DGL-luke 1. Jul 2007 13:57

Re: MSXML und Umlaute
 
das sieht nach unicode aus, wenn auas einem buchstaben plötzlich zwei werden...

the-networker 1. Jul 2007 14:46

Re: MSXML und Umlaute
 
Zitat:

Zitat von DGL-luke
das sieht nach unicode aus, wenn auas einem buchstaben plötzlich zwei werden...

Ich gebe Dir recht, es könnte Unicode sein.
Aber was fange ich jetzt mit dieser Erkenntnis an?

Uwe

CalganX 1. Jul 2007 14:52

Re: MSXML und Umlaute
 
Hi,
wenn du die Datei speicherst, musst du sie auch genau in dem Format speichern, das du im Header angibst. Es nützt nichts, wenn du UTF-8 angibst, du mit Notepad aber die Datei im ISO-Format speicherst.
Es empfiehlt sich im Normalfall aber, Dateien grundsätzlich im Unicode-Format zu speichern (also sowohl im Header UTF-8 angeben, als auch die Datei in diesem Format zu speichern) und das dann einheitlich zu halten (im Header, im Code, in externen Editoren, etc.)

Chris

[edit]Denke aber daran, dass die Controls der VCL von Haus aus keine Unicodes anzeigen können. D.h. entweder wandelst du die Strings wieder um oder verwendest TNTControls oder doch einen ISO-/ASCII-/ANSI-Zeichensatz.[/edit]

Bernhard Geyer 2. Jul 2007 08:10

Re: MSXML und Umlaute
 
Die erste Angabe stellen die UTF8-Codierung des "ü" dar.

3CBC -> (drehen der Bytes nötig) ü

Du mußt also "nur" die richtige Bytereihenfolge herstellen und dann von UTF8 in einen (Wide-)String konvertieren.


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