![]() |
TWebbrowser Sonderzechen bei innterhtml
Hallo!
Sagt mal ich will einen Quellcode einer Seite auslesen mittels der Funktion vom TWebbrowser. Vorher hatte ich es per Indy gemacht, aber das geht nicht mehr, weil man sich an der Seite anmelden muss. Bei der Variante mit dem TWebbrowser fehlen aber einige obskure Sonderzeichen, die aber auf der Seite korrekt angezeigt werden und werden durch ein ? ersetzt (leider tatsächlich ein ?). Wenn ich mir den Quellcode per Firefox anschaue, dann sind die zeichen dort korrekt abgebildet. Wie kann ich sowas mit dem TWebbrowser schaffen? Ich habe bereits versucht anstatt TWebbrowser die lib von Mozilla zu nehmen, aber da kann ich gerade mal Benutzername und Kennwort eingeben und bekomme eine Warnung wegen der ungesicherten seite. Dann kommt nix mehr! Guß Coko! |
Re: TWebbrowser Sonderzechen bei innterhtml
Ein Fragezeichen hört sich wie eine schief gegangene Codepagekonvertierung an. Verwendest du AnsiStrings oder WideStrings für den Text?
|
Re: TWebbrowser Sonderzechen bei innterhtml
Hai!
Naja ehrlich gesagt schreibe ich das ergebnis direkt in eine Datei.... und da ist es lt. Hexeditor tatsächlich ein ?. Ich habe es auch mit einem memo probiert, gleiches Resultat. Es muss aber da sein, es wird ja auch dem Schirm korrekt angezeigt, nur in der Datei und im Memo nicht! Gruß Sven! |
Re: TWebbrowser Sonderzechen bei innterhtml
Also ich habe beide typen mal mit umweg in eine Datei gschrieben.... gleiches Ergebnis. Wie gesagt mit Indy gehts, aber das ist mir zu kompliziert mich da einzuloggen.
Falls es eine Rolle spielt, das Zeichen ist ein NO wobei das O unterstrichen ist und es EIN Zeichen ist, nicht zwei wie man annehmen mag. Alle anderen völlig verrückten Zeichen (z.B. ¥†±ÞØæ) werden korrekt wiedergegeben! Gruß Sven! |
Re: TWebbrowser Sonderzechen bei innterhtml
Wie liest du den Quelltext aus?
|
Re: TWebbrowser Sonderzechen bei innterhtml
Hallo Sven,
Zitat:
Grüße vom marabu |
Re: TWebbrowser Sonderzechen bei innterhtml
Funktioniert es so?
Delphi-Quellcode:
var txt: WideString;
f: File; begin txt:=(WebBrowser1.Document as IHTMLDocument2).body.innerHTML; AssignFile(f, 'c:\test.txt'); Rewrite(f, 1); BlockWrite(f, PWChar(txt)^, Length(txt)*2); CloseFile(f); end; |
Re: TWebbrowser Sonderzechen bei innterhtml
Klasse, in meinen Augen bist du der Größte!
Aehm eine dumme Frage.... bin nich so der Superprogger.... wie geht das Rückwärts? Also Blockread?? Gruß Sven! |
Re: TWebbrowser Sonderzechen bei innterhtml
Also lag es an der Unicodeumwandlung. Lesen würde mit Reset und BlockRead gehen, allerdings wird es vermutlich einfacher, wenn du gleich mit unicodefähigen Sachen arbeitest. Dafür bieten sich z.B. die
![]() |
Re: TWebbrowser Sonderzechen bei innterhtml
Ha Blockread ist klar... die unicode umwandlung habe ich drn seit der indy komponente...
Aber ich habe keine Ahnung von Blockread, wie muss der Befehl aussehen? Gruß Sven! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:42 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