webseiten mit utf8

lordlamer

lordlamer

Haudegen
Hiho an alle,

folgende Sache:
Ich habe ein Projekt namens Knowledgeroot: www.knowledgeroot.de welches Webseiten in UTF8 ausliefern sollte. So hab ich es zumindest im htmlheader angegeben.

Nun wurde aber festgestellt wenn man den Charset im Firefox auf nicht Westlich und zb mal auf utf8 setzt funktionieren umlaute nicht.

Was hab ich falsch gemacht bzw muss und sollte ich beachten bei websites mit utf8?

Auf knowledgeroot-dev.linuxdelta.de ist eine live demo zum probieren.

Mfg Frank
 
Hast du PHP Code implementiert? Da ist das Problem, dass PHP nur erzwungen UTF-8 macht. War da letztens selber mal bei Google aktiv, hab aber noch keine brauchbare Lösung gefunden, dass PHP komplett alles in UTF-8 macht. Änderungen in der Config waren irgendwie auch nicht erfolgreich. War aber auch nur so Probieren auf halbem Auge.

Die Funktion utf8_encode() funktioniert recht gut, aber ist halt umständlich, da du jedes echo da rein setzen musst! ;)

Vllt. hilft dir da mein Halbwissen ein wenig weiter ;)


mfg hex
 
Hi,

ich schau mir den Befehl mal an. Auf jedenfall muss man im HTML Header auch utf8 als charset setzen damit der Browser bescheid weiss.

Übrigens du musst nicht um jede Ausgabe das utf8_encode drum basteln. Du könntest auch alle ausgaben in einem Ausgabecache sammeln und dann den encode ausführen und ausgeben. Das war in php mit ob_start und so möglich!

Mfg Frank
 
HTML code

Ich würde mal sagenn, dass das mit den umlauten normal ist, zumindest wenn du wirklich sowas wie ä,ö,ü schreibst.. ich würde anststatt dessen lieber ä, ö und ü schreiben.

Hoffe, dass ich helfen konnte.
 
das ist nicht akzeptabel ;)
soll schliesslich benutzerfreundlich sein *G*

das muss auch so gehen. tut es ja auch sofern man nicht den charset im browser irgendwie mal ändert.

Frank
 
Schreib mal das ganz oben in deine php Seite:
Code:
/* UTF-8 Zeichensatz */
header("Content-Type: text/html; charset=UTF-8");
mb_language('Neutral');
mb_internal_encoding("UTF-8");
mb_http_input("UTF-8");
mb_http_output("UTF-8");
In erster Linie ist die header Zeile wichtig.
 
lordlamer schrieb:
das ist nicht akzeptabel ;)
soll schliesslich benutzerfreundlich sein *G*

das muss auch so gehen. tut es ja auch sofern man nicht den charset im browser irgendwie mal ändert.

Frank


Code:
<?php
  $content = str_replace('ä','&auml;',$content);
  $content = str_replace('ö','&ouml;',$content);
  $content = str_replace('ü','&uuml;',$content);
  $content = str_replace('Ä','&Auml;',$content);
  $content = str_replace('Ö','&Ouml;',$content);
  $content = str_replace('Ü','&Uuml;',$content);
  $content = str_replace('ß','&szlig;',$content);
?>
 
Wenn man UTF8 verwendet, dann ist es nicht mehr notwendig die Umlaute,.. umzuwandeln. Sonst würde es ja für 90% der Seiten im deutschen Sprachraum ohnehin keinen Sinn machen.
 
Also Kinners.

Ein paar Sachen die man beachten sollte :

- Die Dateien sollten utf-8 encodet sein
- An den Anfang der CSS Datei eine "@charset "utf-8";"
- Daten aus Datenbanken und aus der url ebenfalls utf-8 encoden oder dafür sorgen dass sie als utf-8 ankommen
- In den Seitenmetatags utf-8 angeben "<meta http-equiv="content-type" content="text/html; charset=utf-8">"
- Bei jeder PHP seite am Anfang einen Contenttype Header mitsenden "header("content-type: text/html; charset=UTF-8");"
- In der php.ini " default_charset = "utf-8" " setzten
- Apache auf utf-8 Ausgabe umstellen

Das wars.
Mehr ist nicht nötig. Ps, wer das nicht in Google findet hat vielleicht nicht richtig gesucht, dazu gibts zig Tutorials im Web, inclusive meinem Beitrag.
 
Zuletzt bearbeitet:
Zurück
Oben