vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Webbrowser und Umlaute 
Autor: Jobe
Datum: 19.02.17 13:58

Moin Forumsmitglieder,

ich habe eine Listbox und einen Webbrowser um Email Dateien um .eml anzuzeigen. Folgender Effekt tritt auf:
Wenn ich nach dem Start des Programms diekt eine Email Datei in der Listbox anwähle werden die Umlaute korrekt angezeigt. Wähle ich dann eine andere Datei an und anschliessend die vorherige wieder, werden die Umlaute nicht mehr richtig angezeigt. Das ist wiederholbar, egal wie die Codierung der Email ausgelegt ist.
Hat einer eine Idee woran das liegen kann, oder weiss einer wie man diesen Effekt umgehen kann?

Derzeit dekodiere ich jede Datei gemäss dem Content-Type und dem Content Transfer Encoding. Das ist äusserst mühsam und führt nicht immer zum richtigen Ergebnis.
Vielleicht hat einer ja dies Problem gelöst.

Jobe
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webbrowser und Umlaute 
Autor: visualfx
Datum: 19.02.17 23:54

Hallo Jobe,

1) zuerst eine kleine Gegenfrage, nur damit ich nichts falsch verstehe:

- Du möchstest Deine *.eml-Dateien nicht mit einem Standard-E-Mail-Programm wie z. B. Outlook, Thunderbird, Windows Mail, etc. anzeigen?

- sondern Du möchtest den Inhalt Deiner *.eml-Dateien selber komplett dekodieren um diesen dann in einem Webbrowser anzeigen zu können?

Das würde ich schlicht und ergreifend mal als äußerst anspruchsvolle Herausforderung bezeichnen !!!

Schon allein in Anbetracht der vielen möglichen Varianten von Content-Type, charset und Content-Transfer-Encoding. Zumal hier die Gefahr besteht, daß in Zukunft jeweils noch neue Varianten hinzukommen:

- Content-Type: text/plain, text, image, audio, video, etc.
- charset: ISO-8859-1, iso-8859-15, utf-8, etc.
- Content-Transfer-Encoding: BASE64, QUOTED-PRINTABLE, 8BIT, 7BIT, BINARY, x-token

siehe hier: https://de.wikipedia.org/wiki/Multipurpose_Internet_Mail_Extensions


2) Aber: wenn die erste *.eml-Datei immer korrekt angezeigt wird, würde ich mal stark vermuten, daß Dein gesamter Dekodier-Mechanismus grundsätzlich korrekt funktioniert!

Ich würde deshalb mal genau debuggen, ob bei der 2ten, 3ten, usw. *.eml-Datei wirklich der / das richtige Content-Type, charset, Content-Transfer-Encoding ausgelesen wird und dann zur Dekodierung verwendet wird.

Vielleicht steht Dein Dekodier-Mechanismus aufgrund von noch falsch sitzenden globalen Variablen auf dem falschen Fuß . . .


3) Trotzdem: grundsätzlich würde ich aber von dem Selbst-Dekodieren von *.eml-Dateien wegen der in 1) genannten Gründe abraten und die *.eml-Dateien mit einem E-Mail-Programm anzeigen.

Bei älteren Windows-Versionen ist Outlook-Express vorinstalliert und bei neueren Windows-Version ist es Windows-Mail. Mozilla Thunderbird ist auch kostenlos.

Gruß, Stefan

Beitrag wurde zuletzt am 20.02.17 um 00:03:24 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webbrowser und Umlaute 
Autor: Jobe
Datum: 20.02.17 12:15

Besten Dank Stefan für deine schnelle Antwort.

Tatsächlich habe ich schon ein Email Programm geschrieben, was viele der Codierungs-Varianten berücksichtigt. Aber so ganz zufrieden bin ich noch nicht und es war schon (und ist) eine mühselige Geschichte.

Bei einem Testprogramm bin ich darauf gestossen, das der Webbrowser alles richtig macht wenn er beim 1. mal benutzt wird. Dabei habe ich den Webbrowser nur mit
Webbrowser1.navigate(pfad) angesprochen.
Weiterhin hab ich versucht einen neuen Webbrowser zur Laufzeit zu generieren und bei einem neuen Aufruf erst zu löschen um eine Jungfräulichkeit herzustellen. Ohne Erfolg.
Es ist doch eigenartig, das nur bei dem ersten Anwählen richtig dekodiert wird.

Klar hast du recht, das das eine anspruchsvolle Aufgabe ist. Ich habe aber gehofft, dass es doch einen Trick gibt der dieses Codierungsfiasko umgeht.
In meinem Programm habe ich einen Umlaute Button der auf utf-8 dekodiert. Damit erreiche ich doch recht viele Varianten.

Warum ich mein eigenes Programm gebastelt habe?
Die heutigen Email Programme sind mir in jeder Hinsicht zu neugierig, wollen erstmal alle Kontakte haben und schnüffeln wer weiss wie auf dem Rechner herum.

Viele Grüsse

Jobe
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webbrowser und Umlaute 
Autor: visualfx
Datum: 20.02.17 12:46

Hallo Jobe,

OK, ich verstehe!

Und Du hast natürlich schon Recht! Gerade bei so großen Firmen wie Microsoft und google, etc. wird mit Sicherheit sehr oft heimlich im Hintergrund nach Hause telefoniert, sprich Daten gesendet !!!

Am meisten Vertrauen habe ich da noch in die Produkte von Mozilla: Firefox, Thunderbird, etc.

Webbrowser: den Webbrowser bzw. das Webbrowser-Control habe ich bisher zwar auch schon benutzt, aber nur für ganz einfache Aufgaben. So wie z. B.in Deinem Beispiel: Webbrowser1.navigate( pfad )

Ich hätte auch drauf getippt, daß man beim Webbrowser-Control am Besten vor jeder Benutzung erst mal den Cache löschen muß. Allerdings kenne ich den Aufruf nicht, vielleicht ExecWB ??? - ich habe vom Webbrowser-Control leider keine Hilfe-Datei.

Alternativ würde ich mal versuchen nach dem Laden Deiner *.eml-Dateien jedesmal im Anschluß das Webbrowser-Control mit Refresh und / oder Refresh2 zu refreshen.

Gruß, Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webbrowser und Umlaute 
Autor: Jobe
Datum: 20.02.17 14:32

Hallo Stefan,

den Webbrowser Cache zu löschen ist wohl nicht so einfach, weil er Teil des IE ist.
Ein Refresh und .navigate("about:blanc") hab ich auch versucht. Ein Refresh2 geht bei mir nicht, wohl wegen VB 2010 Express. Die würde wohl einen Zugriff auf den Cache erlauben soweit ich weiss.

Auch sowas habe ich im Netz gefunden wie "pragma:nocache". Weiterhin habe ich ja versucht das Cache Problem zu umgehen mit dem Laden und Löschen eines neuen Webbrowsers zur Laufzeit.
Ich weiss nicht in welchem Umfang der IE damit hineinspielt. Das ist wohl auch ein Geheimnis von MS.

Viele Grüße
Jobe
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webbrowser und Umlaute 
Autor: Jobe
Datum: 21.02.17 13:20

Hallo an alle,

ich glaube ich habe herausgefunden worin das Problem liegt:
Im Webbrowser gibs mit Rechtsklick das Contextmenu mit dem Punkt Codierungen.
Wenn die Automatische Auswahl nicht aktiv ist, ist bei der 1. Auswahl wohl Standardmäßig Unicode(utf-8) Codierung vorgesehen. Beim 2. Start wählt der Webbrowser die Ländereinstellung, also Westeuropäisch aus. Das führt dann im Wechsel zu den Teils falschen Darstellungen der Umlaute.

Wenn man also die Automatische Auswahl aktiviert ist zumindest ein definierter Zustand vorhanden, in diesem Fall Westeuropäisch.

Offensichtlich ist der Webbrowser nicht in der Lage die in der Email geforderten Codierungen von sich aus einzustellen. Nun heißt es doch wieder alles zu Fuß zu programmieren.

Es sei denn es gibt einen Schlaufuchs der weiss wie man direkt auf die Codierungen des Webbrowsers Einfluß nimmt.

Ich hoffe, das ich damit auch den einen oder anderen helfen konnte.

Jobe
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webbrowser und Umlaute 
Autor: effeff
Datum: 21.02.17 14:13

Was passiert, wenn Du nach dem Laden der eml das hier angibst?

Webbrowser.Document.Encoding = "UTF-8"

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webbrowser und Umlaute 
Autor: Jobe
Datum: 22.02.17 13:53

Es passiert das gleiche wie vorher beschrieben.
Wenn unter Codierungen die Automatische Auswahl deaktiviert ist wird das 1. mal utf-8 angezeigt und beim 2. mal Westeuropäisch. Bei Automatische Auswal aktiviert ist gleich Westeuropäisch gewählt.
Der webbrowser führt offensichlich ein eigenes Leben, denn manchmal codiert er irgendwas manchmal nicht. Ich habe nichts vorhersagbares herausgefunden.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Webbrowser und Umlaute 
Autor: Jobe
Datum: 22.02.17 14:18

Also Webbrowser.Document.Encoding = "UTF-8" funktioniert in WebBrowser1_DocumentCompleted.
Es werden dabei jedoch alle Dateien gnadenlos mit utf-8 dekodiert.
Aber im Webbrowser wird trotzdem falsch angezeigt. Eine richtige Anzeige erfolgt nur wenn ich die Codierung im Contextmenu wähle.

Beitrag wurde zuletzt am 22.02.17 um 14:23:30 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel