![]() |
HTML? decodieren
Hallo,
ich bekomme von einem Obex Server eine XML Datei zurück geliefert. In dieser steht zum Beispiel auch der Eintrag "Töne". Leider wird mir 'T' + #$C3#$B6 + 'ne' zurückgeliefert. Erkennt jemand nach welchen Schema das codiert ist? Für das Zeichen 'ö' werden die beiden Hexcodes C3 und B6 verwendet. MfG Hitzi |
Re: HTML? decodieren
Meines wissens ist das Unicode, da hier ein Zeichen 2 Bytes belegt.
|
Re: HTML? decodieren
Und wie wird ein Unicodezeichen in ein "normales" Zeichen umgewandelt?
Habe bisher noch nichts mit Unicodezeichen gemacht :? MfG Hitzi |
Re: HTML? decodieren
|
Re: HTML? decodieren
Hier mal eine Quick&Dirty Routine für UTF-8 nach WideString.
Delphi-Quellcode:
...:cat:...
procedure TForm1.Button1Click(Sender: TObject);
var Res: array[0..1024] of WideChar; S: AnsiString; begin S := 'T' + #$C3#$B6 + 'ne'; MultiByteToWideChar(CP_UTF8, 0, PChar(S), -1, @Res[0], SizeOf(Res)); ShowMessage(Res); end; |
Re: HTML? decodieren
Falls es wirklich eine XML-Datei ist, so nimm doch einen Parser wie
![]() |
Re: HTML? decodieren
Danke für eure Antworten.
Es ist wirklich eine XML Datei, aber mit so simplen Aufbau, dass der Overhead, welcher durch einen Parser entsteht, nicht gerechtfertigt ist. Ich habe Sakuras Funktion wie folgt abgeändert. Irgendwelche Verbesserungen, Vorschläge dazu?
Delphi-Quellcode:
function AnsiToStr(s : AnsiString) : string;
var Res : array of WideChar; len, i : integer; begin result := ''; len := MultiByteToWideChar(CP_UTF8, 0, PChar(s), - 1, nil, 0); if len > 0 then begin setlength(Res, len); MultiByteToWideChar(CP_UTF8, 0, PChar(s), -1, @Res[0], SizeOf(Res)); for i := 0 to SizeOf(Res) - 1 do result := result + res[i]; end; end; MfG Hitzi |
Re: HTML? decodieren
Hmm ... da ist noch ein Fehler in der Funktion.
Es werden immer nur vier Zeichen zurückgeliefert. :cry: |
Re: HTML? decodieren
Hi,
gibt SizeOf(Res) den richtigen Wert zurück? mfG mirage228 |
Re: HTML? decodieren
Danke - das war der richtige Hinweis. Habe SizeOf() in Length() abgeändert und nun funktioniert es.
Mfg Hitzi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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