Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Wie müssen MHTML-Dateien (.mht) gespeichert werden? (https://www.delphipraxis.net/194012-wie-muessen-mhtml-dateien-mht-gespeichert-werden.html)

Der schöne Günther 6. Okt 2017 11:36

Wie müssen MHTML-Dateien (.mht) gespeichert werden?
 
Ich habe eine Software die mittels irgendwelchen Windows-Automatismen eine URL besucht und die Seite als .mht in einen
Delphi-Quellcode:
TStream
steckt. Also das was man evtl. aus dem Internet Explorer als Speichern Unter -> Komplette Webseite (.mht) kennt.

Was ich nicht verstehe: Der Internet Explorer scheint, wenn man das als Datei von der Festplatte doppelklicken will, ein bestimmtes Encoding der Datei zu erwarten: Wenn ich es als Unicode speichere zeigt der IE nur ein weißes Fenster an. Nehme ich
Delphi-Quellcode:
TEncoding.UTF8
ist alles super.

Ich würde das gerne verstehen. Ich habe diese RFC für MHTML gefunden
https://tools.ietf.org/html/rfc2557#section-10
aber das war es auch schon.

Kann jemand Erleuchtung bringen?

Bernhard Geyer 6. Okt 2017 12:01

AW: Wie müssen MHTML-Dateien (.mht) gespeichert werden?
 
im Webumfeld ist es nicht üblich Dokumente als UTF16-Datei zu speichern.
Ebenfalls steht vermutlich in der html-Datei im header-Bereich auch das Sie utf8-Codiert ist.

Der schöne Günther 6. Okt 2017 12:12

AW: Wie müssen MHTML-Dateien (.mht) gespeichert werden?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hätte erwartet dass es egal ist was in der HTML-Datei steckt: MHTML habe ich als Container für eine (oder mehrere?) HTML-Dateien inkl. Assets wie CSS, Grafiken, Skripten usw. verstanden. Die MHTML-Datei ist ja eine Textdatei, Binärdateien wie Grafiken sind darin kodiert (Base64?).

Ich habe spaßeshalber mal so eine Datei angehangen.

Redeemer 6. Okt 2017 13:17

AW: Wie müssen MHTML-Dateien (.mht) gespeichert werden?
 
Der IE zeigt vermutlich kein weißes Fenster sondern möchte die Datei herunterladen. UTF-16 darf ausschließlich dann genutzt werden, wenn der Server es via HTTP ankündigt. Da du weder HTTP noch einen Server besitzt, darfst du kein UTF-16 verwenden. (Die Angabe des Encodings in HTML wird ohnehin nur genutzt, wenn der Server keine Angabe via HTTP sendet.)


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