Antworten auf deine Fragen:
Neues Thema erstellen

PHP - Ausgabe von Umlauten

Winkili

Noch nicht viel geschrieben

Liebe PSD'ler,

mein aktuell etwas größeres Projekt, ein Back-End, bringt mich gerade zur Weißglut.
Umlaute die in PHP ausgegeben werden, werden nicht richtig angezeigt. Dabei spielt es keine Rolle wie sie vorher behandelt werden. Wie ich gelesen habe, mögen sich utf8 und str_replace wegen der höheren Bitzahl in manchen Fällen nicht. Doch auch ein einfaches 'echo' bringt mir keine schönen Umlaute sondern lediglich �.
Das charset ist in HTML auf utf-8 gestellt und hart in die HTML-Datei geschriebene Umlaute werden auch korrekt dargestellt - nur PHP macht zicken ;)

Für einen (rettenden) Tipp wäre ich super dankbar - vielen Dank.
 

dlogic

Allrounder

AW: PHP - Ausgabe von Umlauten

Kommen die Daten aus einer DB und ist der MySQL-Zeichensatz ebenfalls in utf-8 ? Ansonten:

Die 5 goldenen Regeln für UTF-8 in PHP/MySQL und HTML:

- Die Datenbank, Tabellen, Spalten sollten jeweils auf utf8_bin/utf8_cs gestellt werden (alternativ utf8_ci)*
- Die Datenbank-Verbindung muss mit SET NAMES utf8 auf UTF-8 gesetzt werden (häufiger Fehler)
- Die PHP-Skripte sollten in der Entwicklungsumgebung/dem Editor als UTF-8-Datei abgespeichert werden (ohne UTF-8 BOM).
- Das PHP-Skript sollte entsprechend einen HTTP-Header senden: header("Content-type:text/html; charset=utf-8");
- Die HTML-Seiten sollten zusätzlich noch einen gleichlautenden <meta>-Tag anführen: <meta http-equiv="content-type" content="text/html; charset=utf-8" />

Der erste Punkt kann über phpMyAdmin's Strukturansicht der Datenbank, der Tabellen und der Spalten überprüft werden,
die letzten beiden Punkte können im Browser überprüft werden: Firefox->Ansicht->Zeichenkodierung->Unicode UTF-8 (?)

Wenn nun weiterhin falsche Zeichen dargestellt werden, wurde mindestens ein Punkt nicht beachtet, oder es sind bereits fehlerhafte Daten aus der Datenbank, einer Datei oder dem PHP-Skript/HTML-Seite eingebunden oder durch eine Konvertierung der Maßnahmen erzeugt worden.
 
Zuletzt bearbeitet:

Winkili

Noch nicht viel geschrieben

AW: PHP - Ausgabe von Umlauten

wow - vielen Dank für die tolle Antwort.

Datenbank, Tabelle und Spalten sind auf utf_general_ci gestellt.
mysql_query("SET NAMES 'utf8'", $db) steht in der connect.inc.php mit drinnen.
Dokumente wurden nochmals in utf8 neu gespeichert und sowohl die PHP- als auch die HTML-Dateien mit dem header versehen.
PHP kann mit Umlauten nun super umgehen, stellt sie richtig dar und in die Datenbank werden sie ebenfalls schön gespeichert.

Was aktuell noch nicht funktioniert ist das richtige Auslesen der Daten aus der Datenbank. Für ein ö kommt ein ö zurück, scheinbar in ISO 8859-1 und nicht utf-8.

Wenn jemand spontan einen Tipp hat, schnell her damit. Ansonsten schau' ich nochmals alle Dateien durch und prüfe sie mit den 5 goldenen Regeln.

Edit:
Fehler gefunden: ein htmlentities hat sich versteckt :-/
Vielen Dank nochmals an den Helfer.
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
118.611
Beiträge
1.538.342
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben