Du bist hier: Seitenreport    Forum    Web-Entwicklung    (X)HTML & CSS    Umstellung auf UTF-8

Umstellung auf UTF-8

Verfasst am: 15. 05. 2010 [11:56]
Gelöschter Benutzer
Beitrag hilfreich?

Hallo,

nachdem ich mit Hilfe von Seitenreport die Seite unserer Schule doch schon sehr optimiert habe, hänge ich noch immer an einem Punkt. Dies ist, die Umstellung vom ISO auf UTF-8 Zeichensatz. Der Content wird wunderbar übernommen, wir haben keine CSS-Probleme und Formulardaten werden korrekt übernommen.
Im Head-Bereich jedoch bzw. in einem Tag-Attribut, werden die Umlaute der deutschen Sprache nicht angenommen und HTML-Entities funktionieren ja auch nicht in Attributen.

Ich hoffe jemand hat eine Lösungsidee?

MfG
 
Verfasst am: 15. 05. 2010 [15:10]
joerg
Dabei seit: 09.06.2009

1540 Beiträge
Beitrag hilfreich?

Hallo Jürgen

Setze das mal in deinen Head Bereich rein.

HTML
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />


Wenn das nicht ausreichen sollte liegt es wohl an dem Format in dem du die Seite abspeicherst.

Gruß
Jörg

 
Verfasst am: 15. 05. 2010 [16:44]
Chance
Dabei seit: 13.11.2009

140 Beiträge
Beitrag hilfreich?

Schaltkreis schrieb:

und HTML-Entities funktionieren ja auch nicht in Attributen.


Sicher ?

www.piacos.de
www.psi-portal.de
 
Verfasst am: 16. 05. 2010 [12:22]
UFOMelkor
Dabei seit: 20.10.2009

348 Beiträge
Beitrag hilfreich?

Hallo Jürgen,

wenn du die Seite mit dem Validator parst, erhälst du u.a. folgende Ausgabe:
Validator schrieb:
Encoding: iso-8859-1

Wenn du dem Validator UTF-8 als Vorgabe gibst, kann er die Seite nicht parsen, weil er unbekannte Zeichen findet (Opera meldet den selben Fehler wenn man UTF-8 erzwingt).

Zuerst solltest du dir überlegen, ob du die Seite wirklich nach UTF-8 konvertieren möchtest. Eine Seite nachträglich nach UTF-8 zu konvertieren bringt meistens ein paar Komplikationen mit sich und der Vorteil hält sich für rein deutschsprachige Seiten in Grenzen.

Wenn du deine Seite immer noch konvertieren möchtest, solltest du zuerst den Charset der Datei ändern.

Bei der XML-Dekleration solltest du den Charset auf UTF-8 stellen:
HTML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

Alternativ kannst du sie auch weglassen, wenn du UTF-8 verwendest. Da die XML-Dekleration Probleme bei allen Versionen des Internet Explorer kleiner 7 verursacht, würde ich dir dazu auch raten.

Zudem solltest du den Header noch ändern mit folgendem PHP-Befehl:
PHP
<?php
 header('Content-Type: application/xhtml+xml; charset=utf-8');

Den Internet Explorer 6 musst du allerdings gesondert behandeln, da er beim Content-Type application/xhtml+xml einen Download-Dialog benötigt. Ihm solltest du folgenden Header schicken:
PHP
<?php
 header('Content-Type: text/html; charset=utf-8');

Das ist dann natürlich nicht mehr korrekt, aber das muss man in Kauf nehmen, wenn man XHTML 1.1 für den Internet Explorer 6 ausgeben möchte.
Ob der Browser den Content-Type application/xhtml+xml unterstützt, kannst du mit der Variable $_SERVER['HTTP_ACCEPT'] herausfinden.
Einen Artikel dazu findest du hier: http://meiert.com/de/publications/articles/20041004/

Der von Jörg vorgeschlagene Meta-Tag bringt leider nicht viel, kann bei XHTML 1.1 in einigen Browsern sogar zu Problemen führen.

Nachdem das ganze nun als UTF-8 ausgegeben wird, muss man noch den Inhalt nach UTF-8 konvertieren. Wenn die Seiten alle im Filesystem liegen, ist es relativ einfach. Die Dateien als UTF-8 speichern und dann die Sonderzeichen zu erstzen.

Schwieriger wird es, wenn die Daten in der Datenbank liegen. Du müsstest die Datenbank auf UTF-8 umstellen (und die Daten darin natürlich auch) und direkt nach dem Verbinden zu MySQL folgendes ausführen:
PHP
<?php
mysql_query("SET NAMES 'utf8'");


Die Daten sollten dann alle in UTF-8 vorliegen und nicht mehr in ihre Entities umgewandelt werden müssen.


HTML-Entities sollten auch in den Tag-Attributen funktionieren. Wenn du allerdings nur alle Daten in Entities und die Formatierung auf UTF-8 umstellst, dann hast du in der Datenbank zwei Charsets enthalten, das kann zu Problemen führen.

 
Verfasst am: 21. 05. 2010 [01:40]
Gelöschter Benutzer
Beitrag hilfreich?

Ja Browserweiche für XHTML 1.1 ist schon eingebaut. Nur die, die auch wirklich XHTML können kriegen application/xhtml, IE5, 5.5 und 6 werden schon lange mit text/html gefüttert. Dass <?xml version="1.0" encoding="UTF-8" standalone="no"?> Probleme verursachen würde, weiß ich auch.
Das Meta-Tag mit content-type hatten wir früher eingebaut, haben es dann aber lieber durch <?xml ersetzt.

Der letzte Teil der Antwort hat mir dann den wichtigen Punkt gezeigt. Ich habe einfach vergessen, die Dateien als UTF-8 zu kodieren und die Datenbank ist auch nicht UTF.

Ein Kracher....75 PHP dateien und die ganze Datenbank nach UTF-8 konvertieren ist mir aktuell ein wenig zu viel Arbeit. Trotzdem danke für den Tipp. Eventuell habe ich ja mal einen freien Tag mit viel Langeweile. Die Frage bleibt immer wozu man es eigentlich tun sollte.

MfG

 




Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.

RSS Feed abonnieren

Werde in Echtzeit über neue Foren-Beiträge informiert:



1 Mitglied war innerhalb der letzten 15 Minuten online (15 heute gesamt):
HundeschuleFlöchen

Administratoren und Moderatoren:
[keine]

Seitenreport hat 18161 registrierte Mitglieder, 3005 Themen und 29117 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 13 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 1 neues Thema und 7 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Mehrfach empfohlen

Seitenreport ist einer der bekanntesten SEO und Website Analyse Dienste im deutschsprachigen Raum und wurde u.a. schon empfohlen:
von Mr. Wong im Wong Letter
vom Leserservice der Deutschen Post
vom Technik Blog SiN
und vielen anderen

Partnerprogramm

12% Lifetime Provision auf alle Buchungen von Dir geworbener Mitglieder sowie 0,50 € für jede Registrierung. Eines der besten deutschen Partnerprogramme laut den appCharts von 100partnerprogramme.de. Nimm jetzt teil am Seitenreport Partnerprogramm und verdiene gutes Geld dabei!

* = Partnerlinks