![]() |
Problem mit UTF-8 Bytes
Hallo, ich habe gerade gemerkt, dass Webbrowser (Firefox, IE) die deutschen Umlaute fehlerhaft darstellen, wenn der HTML-Datei nicht die 3 UTF-8 Erkennungs-Bytes ($EF $BB $BF) vorangestellt sind.
Die HTML-Datei hat folgende Kennung: Zitat:
Delphi-Quellcode:
Aber trotzdem wird die Datei in einem Hex-Editor ganz normal mit den 3 Bytes am Anfang dargestellt!!!
MyStringList[0] := Chr($EF) + Chr($BB) + Chr($BF) + MyStringList[0];
|
Re: Problem mit UTF-8 Bytes
Diese Bytes sind ja nicht das Entscheidende, sondern die Codierung als UTF-8, und die hast du bisher ja nicht gezeigt. Zudem kann man das glaube ich auch im Header noch einmal setzen, der mit der Datei geschickt wird (per PHP ggf.). Der sollte natürlich auch auf UTF-8 lauten. Wie hast du die denn gemacht? Dies funktioniert jedenfalls problemlos, auch ohne diese Bytes:
Delphi-Quellcode:
Die Bytes kannst du natürlich zusätzlich auch hinzufügen.
var
test: TStringList; begin test := TStringList.Create; test.Text := Utf8Encode('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' + #13#10'<html xmlns="http://www.w3.org/1999/xhtml">' + #13#10'<head>' + #13#10'<meta http-equiv="Content-Language" content="de" />' + #13#10'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />' + #13#10'<title>Example</title>' + #13#10'</head>' + #13#10'<body>' + #13#10'Das ist ein Text mit ä, ö und ü als Umlaute drin.' + #13#10'</body>' + #13#10'</html>'); test.SaveToFile('b:\xyz.html'); test.Free; |
Re: Problem mit UTF-8 Bytes
Zitat:
Delphi-Quellcode:
sollte funktionieren ...
SaveToFile('filename.ext', TEncoding.UTF8);
Cheers, |
Re: Problem mit UTF-8 Bytes
// EDIT:
Ich hatte den falschen Link angeschaut. Das ist neu in Delphi 2009. Aber in früheren Versionen von Delphi gibts das nicht. Da hier im Profil ja 2009 steht, ist das also das richtige. |
Re: Problem mit UTF-8 Bytes
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
![]() [edit=mkinzler]Img-Tag durch Url-Tag ersetzt, Bild angehängt Mfg, mkinzler[/edit] |
Re: Problem mit UTF-8 Bytes
Zitat:
Wenn man SL.SaveToFile(); schreibt und die Einfügemarke (Caret) zwischen die Klammern setzt und dann Strg + Umschalt + Leertaste drückt, sieht man alle möglichen Signaturen (in diesem Fall zwei). Puh, wenigstens das funktioniert :) p.s. wie macht man die schicken Screenshots mit Papiereffekt? HyperSnapz? Gimp? Cheers, [edit=mkinzler]Quote an Änderung angepasst Mfg, mkinzler[/edit] |
Re: Problem mit UTF-8 Bytes
Die 3 Bytes sind übrigens der BOM - Byte Order Marker.
|
Re: Problem mit UTF-8 Bytes
Hi!
Könntet ihr bitte das Bild als Anhang machen? Dann sind wir nicht von externen, u.U. langsamen Servern abhängig? Im Quote könnte man dann auch bitte das Bild entfernen, danke. Im Regelfall sind solche Full-Quotes auch nicht unbedingt sinnvoll... Ciao, Frederic |
Re: Problem mit UTF-8 Bytes
Ich hab das mal erledigt. Aber das nächste mal selber machen!
|
Re: Problem mit UTF-8 Bytes
Zitat:
|
Re: Problem mit UTF-8 Bytes
Hi!
Wie habe ich das zu verstehen? Ciao, Frederic |
Re: Problem mit UTF-8 Bytes
Zitat:
|
Re: Problem mit UTF-8 Bytes
Zitat:
|
Re: Problem mit UTF-8 Bytes
Zitat:
:P ![]() |
Re: Problem mit UTF-8 Bytes
Zitat:
|
Re: Problem mit UTF-8 Bytes
Eigentlich werden alle in Frage kommenden Möglichkeiten auch angezeigt, wenn man bspw. die Klammer am Anfang schreibt usw., und erst dann ausgeblendet, wenn der Typ zu einer Überladung nicht mehr dazupasst.
Als Quelle nutzt Delphi direkt die Dateien. |
Re: Problem mit UTF-8 Bytes
Zitat:
|
Re: Problem mit UTF-8 Bytes
Die Seite war ja ein Aprilscherz, insofern müssen die Angaben ja auch nicht stimmen, darum gehts bei der Seite ja nicht. ;-)
|
Re: Problem mit UTF-8 Bytes
Zitat:
Delphi-Quellcode:
procedure TformMain.btn1Click(Sender: TObject);
begin PornographyAndCasinos.Destroy; end; |
Re: Problem mit UTF-8 Bytes
Jetzt uferts hier langsam aus. Das kannst du ja in Klatsch und Tratsch fragen. :mrgreen:
|
Re: Problem mit UTF-8 Bytes
Damit du das nicht übersiehst antworte ich mal statt zu editieren:
Zitat:
|
Re: Problem mit UTF-8 Bytes
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Und wenn ich nur die Kennzeichnung des Charsets im Header der HTML-Datei belasse (ohne den UTF-8 Parameter beim SaveToFile), werden die Umlaute fehlerhaft angezeigt. |
Re: Problem mit UTF-8 Bytes
Zitat:
Cheers, |
Re: Problem mit UTF-8 Bytes
Das Problem ist, dass dir zwei Hochkomma fehlen. Du hast geschrieben:
Zitat:
mfg Peter |
Re: Problem mit UTF-8 Bytes
Zitat:
Zitat:
Das mit den Bytes war auch nur ein Hinweis. Das W3C warnt davor, das heißt nicht, dass man die nicht benutzen darf. Nur kann es bei älteren Browsern eben Probleme geben. Zitat:
|
Re: Problem mit UTF-8 Bytes
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Bild entfernt und in Anhang gepackt Das einzige was funktioniert ist SaveToFile mit dem UTF-Encode Parameter. Und dabei werden die drei genannten Bytes am Anfag der Datei erzeugt. [edit=SirThornberry]Bild in Anhang gepackt - Mfg, SirThornberry[/edit] |
Re: Problem mit UTF-8 Bytes
Richtig, in der ersten Antwort hatte ich auch nicht auf deine Profilangabe mit Delphi 2009 geachtet. Da hat sich das ja etwas geändert. In einer TStringList sind da ja jetzt UnicodeStrings drin.
Für aktuelle Browser ist eine mit den Bytes gespeicherte Datei ja auch sicher kein Problem. Auf welche Browser sich die Warnung des W3C bezieht, steht leider nicht dabei. Im IE gibts jedenfalls auch in älteren Versionen keine Probleme. Deshalb ist das so schon in Ordnung, solange nicht jemand sehr alte Software zum Öffnen der Dateien verwendet und du damit rechnen musst, dass das so ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:35 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