[MySQL,PHP] Probleme mit Umlauten

Beruflich entwickele ich zur Zeit ein Web-Projekt mit PHP, MySQL und ExtJS auf einem iMac mit MAMP, das Mac-Pendant zu XAMPP.

Hier habe ich ein interessantes Umlaute-Problem, welches ich nicht sofort lösen konnte.
Umlaute wurden erst nicht richtig vom JavaScript zur Serverseite (PHP) geschickt und anschließend kamen auch Umlaute nicht richtig vom DBMS MySQL zurück.

Die Lösung für dieses Problem ist allerdings eigenartig:

	mysql_query('set character set utf8;');

Dieser Code-Schnipsel muss nach dem mysql_connect() eingefügt werden und sorgt somit, dass wirklich auch immer per UTF8 übertragen bzw. erzwungen wird.

Weitere Möglichkeiten um Probleme mit Umlauten zu lösen:

header('content-type: text/html; charset=UTF-8');

(am Besten direkt am Anfang nach dem <? – Tag)

UND/ODER

<meta http-equiv=„Content-Type“ content=„text/html; charset=UTF-8″ />

(oben innerhalb des HEAD-Tags einer HTML/PHP-Seite einbinden)

Natürlich ist es auch empfehlenswert, die erstellten Dateien direkt im UTF8-Format abzuspeichern.
Notepad++, mein Favorit in einer Windows-Umgebung, kann das zum Beispiel sehr fix und ist kinderleicht einzustellen.

Weiterhin sehr hilfreich und manchmal sogar notwendig ist es besonders auch in JavaScript (nicht nur), wenn man Umlaute HTML-codiert ausgibt oder umschreibt.
Dazu hilft folgende Tabelle:

ä / Ä &auml; / &Auml;
ü / Ü &uuml; / &Uuml;
ö / Ö &ouml; / &Ouml;
ß &szlig;

Man sieht, es ist nicht schwer sich den Aufbau zu merken: Erst ein „&“ (Ampersand), dann vom Umlaut der normale Laut und danach ein „uml;“ .
Mehr Kodierungen gibt es bei SELFHTML.

Veröffentlicht in MySQL. Schlagwörter: , , . Leave a Comment »