![]() |
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:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 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 by Thomas Breitkreuz