UTF-8 Problem . Umlaute werden falsch dargestellt?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Lies dir mal Zeichencodierung/MySQL bei SelfHTML durch.

Es muss alles UTF-8 sein. Header, content type... auf der Website wo du dein Formular abschickst. In MySQL DB Kollation eg utf8_general_ci und Connection:

mysqli_query($db, "SET NAMES 'utf8'");

oder

$mysqli->set_charset("utf8");

RayLaMue 
Beitragsersteller
 27.10.2019, 10:09

Vielen Dank

Das hier war die Lösung :)

$mysqli->set_charset("utf8"); 
2

PHP mit SQL und HTML zusammen so zum laufen zu bekommen, überfordert viele Einsteiger.

Normalerweise solltest du alles in UTF-8 kodieren, aber da PHP damit von Hause aus nicht komfortabel umgehen kann, bleibt dir nur, dich durch die Server- und DB-Einstellungen zu kämpfen, und alle Kodierungen auf einen Nenner zu bringen.

Wenn du auf Nummer sicher gehen willst, dass deine Umlaute überall richtig angezeigt, korrekt in der DB gespeichert, von PHP nicht verhunzt und in der HTML-Seite korrekt angezeigt werden können, dann bleibt dir eigentlich nur das gute alte ASCII als Kodierung und die Verwenddung von Entities oder Escape-Sequenzen in HTML. Aber das ist eigentlich Pfusch.

Und deine aktuelle Lösung mag im Moment zwar lokal bei dir funktionieren, wird bei einem Serverumzug aber garantiert größere Probleme verursachen.

Bitte informiere dich genau, wie PHP und MySQL zusammen arbeiten, und wie man eine Unicode-Kodierung fehlerfrei aufsetzt, die auch im HTML ohne bsondere Header auskommt. Alles andere ist auf Dauer nur Frickelei.

Viel Erfolg! :)

Woher ich das weiß:eigene Erfahrung