Text wird in UTF-8 nicht richtig dargestellt
Kaiser
- html
Hallo,
ich habe für ein deutsch-russisches Projekt eine Webseite erstellt. Da der Text auf dieser Seite in russisch sein wird, habe ich die Seiten in UTF-8 angelegt. Leider werden trotzdem wird der Text bei einigen Seiten ganz komisch angezeigt, während andere einwandfrei sind.
Vielleicht kennt sich jemand damit aus und kann mir sagen, wo der Fehler im Code liegt.
Die Seite ist über http://www.fairdevelop.ru/index.html zu erreichen. Die Startseite ist OK. Klickt man in der Navi auf z.B. Klinikzentrum Mühlengrund, sieht das anders aus.
Vielen Dank vorab für eure Hilfe!
Gruß
Kaiser
Hallo,
Tach.
Klickt man in der Navi auf z.B. Klinikzentrum Mühlengrund, sieht das anders aus.
Die Seite wird hier z.B. auch als iso-8859-1 dargestellt. Kein Wunder - fehlt ja auch die Metaangabe dazu und damit nimmt der Browser das, was als Default eingestellt ist.
Aber da sind noch mehr Sachen: z.B. ist "Meine Homepage" wohl nicht der gewünschte Titel. Außerdem fehlen die Doctype Angabe und man hat sich darauf geeinigt, das Tags klein geschrieben werden. Bei HTML 4 ist das zwar noch egal, aber zumindest wäre es schön, wenn man es einheitlich macht. Ist zur Zeit ja Groß- und Klein gemischt.
Der hier kann Dir sicher auch noch so einiges erzählen:
http://validator.w3.org/
MfG
ich
Hallo,
danke für die Antwort. Wie muss den die Metatag Angabe aussehen. Habe in dem Dokument <meta http-equiv="content-type" content="text/html;charset=utf-8" /> drin. Funktioniert auch bei einigen. Der Rest der Metatags ist noch Baustelle, aber danke für den Hinweis. Die Doctype Sache wurde von Dreamweaver so angelegt. Kommt aber auch beim Finetuning unter die Lupe. Im Moment geht es nur um die Darstellung. Bin leider noch nicht schlauer geworden, was nun zu tun ist.
Danke!
Hell-O!
ich habe für ein deutsch-russisches Projekt eine Webseite erstellt. Da der Text auf dieser Seite in russisch sein wird, habe ich die Seiten in UTF-8 angelegt.
Mag sein, sie werden aber mit dem Charset ISO-8859-1 ausgeliefert (siehe HTTP trace).
Die Seite ist über http://www.fairdevelop.ru/index.html zu erreichen.
Kleiner Service des Hauses :-)
Die Startseite ist OK.
Ja, da die russischen Schriftzeichen mit ihren Entitäten im HTML-Quelltext notiert sind und daher richtig dargestellt werden.
Klickt man in der Navi auf z.B. Klinikzentrum Mühlengrund, sieht das anders aus.
Auf dieser Seite stehen die russischen Schriftzeichen im Quelltext. Was du siehst, ist das, was mit dem Zeichensatz ISO-8859-1 heraus kommt.
Siechfred
Hallo,
danke für die schnelle Antwort. Ich habe in den einzelenen files immer <meta http-equiv="content-type" content="text/html;charset=utf-8" /> angegeben. Warum bliebt er im ISO? Was muss ich ändern?
DANKE
Kaiser
Hell-O!
Ich habe in den einzelenen files immer <meta http-equiv="content-type" content="text/html;charset=utf-8" /> angegeben. Warum bliebt er im ISO? Was muss ich ändern?
Sende einen entsprechenden header mit. Beachte dabei aber, dass die header-Anweisung abgesehen von den PHP-Tags die *erste* Zeile deines PHP-Skriptes sein muss.
Siechfred
Danke! Aber ich check es nicht. Wo geht's denn hier zu den Anfängern?
Gruß
Kaiser
Danke! Aber ich check es nicht. Wo geht's denn hier zu den Anfängern?
Das bereits genannte HTTP trace liefert in der Serverantwort u.a. "X-Powered-By: PHP/4.3.11", deshalb nahm ich an, dass das HTML von PHP erzeugt wird. Aus diesem Grund der Hinweis auf die header-Funktion.
Sollte kein PHP zum Einsatz kommen, hast du insbesondere zwei Möglichkeiten:
Du konfigurierst den Webserver so, dass er tatsächlich UTF-8 oder einen anderen geeigneten Zeichensatz ausliefert (eine Möglichkeit ist AddCharset).
Du kodierst alle russischen Schriftzeichen wie auf der Startseite (siehe Allgemeines zur HTML-Zeichenreferenz.
Ansonsten siehe auch Archivsuche: "Kyrillische Buchstaben".
Siechfred
DANKE! Habe nun alle Seiten einfach in Dreamweaver wieder in "Westeuropäisch" geändert. Dann codiert er automatisch den kyrillischen Text. Nun passt es. DANKE!
Hallo noch mal!
ich habe nun alle Text kodiert, was sicher nicht die beste Lösung ist, aber reicht erst mal. Nun habe ich noch ein Problem mit dem Kontaktformular (letzter rechter Link in Navi oben). Funktioniert als PHP einwandfrei. Nur werden kyrillische Zeichen in den Textfeldern nun in dieser Codierung übertragen. D.H. in der Mail habe ich dann Stehen NAME: Ԁ... etc.
Wie kann ich das ändern? Sicher muss ich dem PHP script irgendwas zufügen!?
Danke schon mal und viele Grüße!
Kaiser
Hell-O!
Nun habe ich noch ein Problem mit dem Kontaktformular (letzter rechter Link in Navi oben). Funktioniert als PHP einwandfrei. Nur werden kyrillische Zeichen in den Textfeldern nun in dieser Codierung übertragen.
Verwende für das Kontaktformular einen geeigneteren Zeichensatz (UTF-8 bietet sich an), den du auch in der E-Mail angibst (siehe mein Posting vom 03.03.2006).
Siechfred
Hallo,
genau! Dachte ich mir und habe den Zeichensatz auf UTF-8 geändert (für das Kontaktformular). Wie kann ich ihn in der Email angeben. Dachte die Header meines Servers machen die Angabe eh sinnlos!?
GRuß
Kaiser
Wie kann ich ihn in der Email angeben.
Steht in dem von mir verlinkten Posting. PHP-spezifische Erläuterungen zu zusätzlichen Mail-Headern findest du im PHP-Handbuch unter mail().
Siechfred
echo $begrüßung;
Ich habe in den einzelenen files immer <meta http-equiv="content-type" content="text/html;charset=utf-8" /> angegeben. Warum bliebt er im ISO? Was muss ich ändern?
Sende einen entsprechenden header mit.
Zur Erklärung für Kaiser: <meta http-equiv="content-type"... ist ein Ersatz für die HTTP-Headerzeile, die dem Client den Content-Type und die verwendete Zeichenkodierung mitteilt. Die Meta-Zeile (oder auch nur der Charset-Teil daraus) darf nur dann vom Client verwendet werden, wenn der Server die entsprechende Information im HTTP-Header nicht mitsendet. Da dein Server Content-Type und Charset im HTTP-Header mitsende, bleibt die Angabe im Meta-Element wirkungslos. Sie kommt erst dann zum Tragen, wenn die Webseite lokal gespeichert wurde, und man sich diese lokale Kopie im Browser anschaut. Bei einem Dateizugriff gibt es keinen HTTP-Header und die Meta-Angabe darf verwendet werden.
Beachte dabei aber, dass die header-Anweisung abgesehen von den PHP-Tags die *erste* Zeile deines PHP-Skriptes sein muss.
Das ist so nicht richtig. Vielmehr müssen alle HTTP-Header gesendet worden sein, bevor angefangen wird, Nutzdaten zu senden. Nutzdaten sind außerhalb der PHP-Bereiche (<?php...?>) notierte Zeichen, Ausgaben die mit echo u.ä. erzeugt werden oder Fehlermeldungen.
Header sendende Befehle, wie header(), setcookie() und session_start(), können selbstverständlich im Quelltext an jeder beliebigen Stelle, also auch kurz vor dessen Ende stehen, wenn man Sorge trägt, dass die Nutzdaten nicht vorher gesendet werden. Man kann das erreichen, indem man die Ausgabe in einer Variable zusammenstellt oder sich der Output Control Functions bedient.
echo "$verabschiedung $name";