Umstellung auf UTF-8 (wg. "Ajax") - Keine Umlaute
Willi
- php
Hallo liebe Forenbesucher/innen,
Um JSON auf meiner Seite nutzen zu können, bin ich von Funpic auf einen Paidspace umgestiegen. Leider kommen die Umlaute nicht korrekt beim PHP-Script an, wenn ich ISO-8859-1 verwende. Daher - und auch um in Zukunft auch Entitäten verzichten zu können - wollte ich auf UTF-8 umstellen.
Dazu habe ich auch eine gute Seite gefunden, dennoch werden bei mir Umlaute nicht korrekt angezeigt. Bisher habe ich folgendes getan:
* in jeder Datei wird ein header('content-type: text/html; charset=utf-8')
gesendet
* in jede HTML-Datei wird ein Metatag <meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />
* Editor auf UTF-8 umgestellt (leider musste ich dazu den Editor wechseln, mit Weaverslave geht das nicht :()
* in einer .htaccess einen Befehl geschrieben: "AddCharset utf-8 .css .html .xhtml .php"
Kann mir jemand sagen woran es liegt, dass Umlaute dennoch nicht korrekt angezeigt werden? Oder habe ich einen Denkfehler in Sachen UTF-8? Muss man weiterhin Entitäten schreiben?
Grüße,
Willi
hi,
* in jede HTML-Datei wird ein Metatag
<meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />
Lieferst du die Seiten denn auch mit dem Content-Type: application/xhtml+xml im HTTP Response Header aus?
* Editor auf UTF-8 umgestellt (leider musste ich dazu den Editor wechseln, mit Weaverslave geht das nicht :()
Kann mir jemand sagen woran es liegt, dass Umlaute dennoch nicht korrekt angezeigt werden?
(Geht es um die Seite, die du im URL-Feld angegeben hast? Wenn ja: )
Daran, dass vorheriger Punkt auf Einbildung beruhen muss.
Bei "... eine eigene Seite für ..." bspw. ist das ü mitnichten als UTF-8-Bytefolge kodiert.
gruß,
wahsaga
Hallo wahsaga,
* in jede HTML-Datei wird ein Metatag
<meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />
Lieferst du die Seiten denn auch mit dem Content-Type: application/xhtml+xml im HTTP Response Header aus?
Stimmt, du hast recht. Habe gar nicht gesehen, dass ich bei beidem etwas unterschiedliches stehen habe. Habe beides jetzt auf das selbe gestellt (text/html). Aber das ist nicht die Lösung des Problems...
* Editor auf UTF-8 umgestellt (leider musste ich dazu den Editor wechseln, mit Weaverslave geht das nicht :()
Kann mir jemand sagen woran es liegt, dass Umlaute dennoch nicht korrekt angezeigt werden?
(Geht es um die Seite, die du im URL-Feld angegeben hast? Wenn ja: )
Daran, dass vorheriger Punkt auf Einbildung beruhen muss.
Du meinst, ich habe den Editor nicht umgestellt? Mhm... PSPad zeigt unten "Kodierung: UTF-8" an.
Bei "... eine eigene Seite für ..." bspw. ist das ü mitnichten als UTF-8-Bytefolge kodiert.
Sondern immer noch ANSI?
Merkwürdig.
Kennst du einen "zuverlässigen" Editor, der mir die Dateien korrekt auf UTF-8 umstellt?
Grüße,
Willi
Wo kommen denn die daten her die angezeigt werden?
wenn diese von einer mysql datenbank kommen kann es sein das die datenbank nicht auf UTF-8 steht
wenn dem so ist das du es über datenbank laufen lässt log dich mal im phpmyadmin ein
gehe dort auf die datenbank über die es leuft
gehe auf operationen
dort kannst du dann die Kollation einstellen
hatte auch so ein problem musste das dann auf latin1_german1_ci stellen dann funktionierten auch die umlaute
zurnot musst du das auch für die einzelnen tabellen umstellen
MFG: Master736
Hallo Master,
Wo kommen denn die daten her die angezeigt werden?
Verschieden. Manche sind statisch, manche kommen aus einer Datenbank, bei beidem funktionieren die Umlaut aber nur mit Entitäten.
hatte auch so ein problem musste das dann auf latin1_german1_ci stellen dann funktionierten auch die umlaute
Habe ich getan. Aber warum soll ich auf latein1_german1_ci und nicht UTF-8 stellen?
Grüße,
Willi
hatte auch so ein problem musste das dann auf latin1_german1_ci stellen dann funktionierten auch die umlaute
Habe ich getan. Aber warum soll ich auf latein1_german1_ci und nicht UTF-8 stellen?
kannst es damit auch ausprobieren
bei mir hats mit latin1_german1_ci funkioniert
mit UTF-8 habe ich es halt nicht getestet ;-)
MFG: Master736
Hallo,
Danke an wahsaga und Master - mittlereweile funktionieren die Umlaute und Sonderzeichen in meine PHP-Dateien.
Es gab wohl einen Fehler in PSPad, der meine Dateien nicht korrekt in UTF-8 konvertiert hat... Wenn jemand einen besseren Editor hat, bitte melden :)
Nur noch eine Hürde gibt es: Meine Daten aus MySQL-Tabellen werden noch nicht korrekt angezeigt. Werde selber noch rumprobieren, wäre aber für Tipps auch dankbar :-)
PS: Ich konnte mit Firefox in der my-Ansicht gerade keine Posts schreiben... Bei Nachricht absenden kam ich immer wieder zurück zum Eingabefeld, auch bei "Vorschau" oder "Rechtschreibung überprüfen" wurde nix gesendet bzw. nix anderes angezeigt.
Grüße,
Willi
Hi Willi!
Es gab wohl einen Fehler in PSPad, der meine Dateien nicht korrekt in UTF-8 konvertiert hat... Wenn jemand einen besseren Editor hat, bitte melden :)
Für kleinere Projekte empfehle ich Notepad2. Leider ist die offiziele Seite gerade nicht zu erreichen, deshalb der Verweis auf chip.de.
Dieser Editor ist sehr schlank und muss nicht installiert werden, beherrscht UTF-8 und Syntaxhighlighting.
Wenn du noch ein bisschen im Archiv kramst, findest du aber noch weitere Vorschläge.
MfG H☼psel
echo $begrüßung;
Nur noch eine Hürde gibt es: Meine Daten aus MySQL-Tabellen werden noch nicht korrekt angezeigt. Werde selber noch rumprobieren, wäre aber für Tipps auch dankbar :-)
In welcher Kodierung sprichst du mit dem DBMS? Vermutlich in keiner speziell festgelegten, weswegen eine Systemdefaulteinstellung greifen wird, was Latin1 sein wird. Das ist der am häufigsten übersehene Punkt beim Kommunizieren mit MySQL-Servern, weswegen die Kurzform der Lösung auch direkt auf der Einstiegsseite des MySQL-Handbuch-Kapitels Character Set Support angegeben und auch oft im hiesigen Archiv zu finden ist.
Welche Kodierung die Felder einer Tabelle haben, ist nur wichtig für die Daten die sie aufnehmen können. Weicht die Feld-Kodierung von der Kodierung einer bestimmten Client-Verbindung ab, konvertiert MySQL selbständig hin und her. Das kann aber im ungünstigen Fall zu Datenverlust führen, wenn Zeichen in der Zielkodierung nicht definiert sind.
echo "$verabschiedung $name";