AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit UTF-8 Bytes

Ein Thema von PeterPanino · begonnen am 10. Apr 2009 · letzter Beitrag vom 11. Apr 2009
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#21

Re: Problem mit UTF-8 Bytes

  Alt 10. Apr 2009, 19:29
Damit du das nicht übersiehst antworte ich mal statt zu editieren:
Zitat von PeterPanino:
VIELEN DANK! Jetzt funktioniert's!
Wichtig noch: Wenn du die Kennzeichnungsbytes benutzt, dann kann es Probleme mit älteren Browsern oder Editoren geben. Deshalb warnt das W3C noch vor der Verwendung. Die Kennzeichnung des Charsets, auch im Header, genügt ja.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#22

Re: Problem mit UTF-8 Bytes

  Alt 10. Apr 2009, 20:13
Zitat von jaenicke:
Wichtig noch: Wenn du die Kennzeichnungsbytes benutzt, dann kann es Probleme mit älteren Browsern oder Editoren geben. Deshalb warnt das W3C noch vor der Verwendung. Die Kennzeichnung des Charsets, auch im Header, genügt ja.
Wie, das verstehe ich jetzt nicht. Ich soll also SaveToFile ohne den UTF-8 Encoding-Parameter verwenden und lediglich die Kennzeichnung des Charsets im Header der HTML-Datei belassen? Aber wenn ich SaveToFile mit dem UTF-8 Encoding Parameter verwende, werden die 3 Bytes am Anfang der Datei erzeugt: S. angehängtes Bild.

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.
Miniaturansicht angehängter Grafiken
savetofile_hex_681.gif  
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#23

Re: Problem mit UTF-8 Bytes

  Alt 10. Apr 2009, 20:31
Zitat von PeterPanino:
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.
Die Funktion Utf8Encode ('ab Werk' in Delphi enthalten) könnte in diesem Fall hilfreich sein. Input ist der Unicodestring => Output ist ein UTF8 String, ohne Vorspann.

Cheers,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
pitti platsch

Registriert seit: 26. Dez 2006
Ort: Berlin
25 Beiträge
 
Delphi 2005 Professional
 
#24

Re: Problem mit UTF-8 Bytes

  Alt 10. Apr 2009, 20:37
Das Problem ist, dass dir zwei Hochkomma fehlen. Du hast geschrieben:

Zitat von PeterPanino:
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
Nach text/html muss ein " und nach charset= noch eins. Sonst sieht der Browser gar nicht, dass du charset setzen wolltest und wundert sich wahrscheinlich noch was "text/html; charset..." für nen komischer MIME-type ist.

mfg
Peter
Sollte geh'n...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#25

Re: Problem mit UTF-8 Bytes

  Alt 10. Apr 2009, 20:41
Zitat von pitti platsch:
Das Problem ist, dass dir zwei Hochkomma fehlen. Du hast geschrieben:

Zitat von PeterPanino:
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
Nach text/html muss ein " und nach charset= noch eins. Sonst sieht der Browser gar nicht, dass du charset setzen wolltest und wundert sich wahrscheinlich noch was "text/html; charset..." für nen komischer MIME-type ist.
Falsch, die Angabe ist so korrekt!

Zitat von PeterPanino:
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.
Weil dann vermutlich UTF-16 benutzt wird, schließlich siond Strings bei Delphi 2009 ja jetzt standardmäßig UTF-16 kodiert.

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 von mjustin:
Die Funktion Utf8Encode ('ab Werk' in Delphi enthalten) könnte in diesem Fall hilfreich sein. Input ist der Unicodestring => Output ist ein UTF8 String, ohne Vorspann.
Das hatte ich ja oben schon geschrieben, aber bei Delphi 2009 sollte das mit dem UTF8 Parameter ja korrekt passieren.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#26

Re: Problem mit UTF-8 Bytes

  Alt 11. Apr 2009, 01:08
Zitat von jaenicke:
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:
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;
Die Bytes kannst du natürlich zusätzlich auch hinzufügen.
Hallo jaenicke, ich habe das jetzt getestet und es funktioniert NICHT:

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]
Miniaturansicht angehängter Grafiken
utf8encode_179.gif  
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#27

Re: Problem mit UTF-8 Bytes

  Alt 11. Apr 2009, 01:14
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 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