PHP Probleme mit Umlauten

Greaseball100

Well-known member
ID: 105292
L
4 Juli 2006
118
10
Hallo.

Ich habe das ewig alte Thema mit den Umlauten.
Leider weiß ich keinen Rat mehr und die Suche hat mich auch nicht weitergebracht.

Die Umlaute werden nicht richtig übergeben.
Dabei spielt es keine Rolle ob ich etwas in die DB eintragen will oder eine eMail per Formular versende.

Im Header des HTML-Codes steht folgendes:

HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

In der httpd.conf hab ich keine passenden Eintrag gefunden.

Hat jemand evtl noch ne Idee?
 
HTML juckt nicht die Bohne. Überleg selbst: Wie soll ein HTML-Tag eine Funktion darstellen, wenn bereits dieses HTML-Tag von der Funktion (Charset) selber abhängig is? :LOL:

Du musst den HTTP-Header überprüfen. Das Charset, was dem Useragent übermittelt wird, muss auch mit dem tatsächlichen Charset übereinstimmen. Andersfalls gibt es freilich Probleme bei der Darstellung.

edit:
Obiges gilt natürlich nur für eine Ausgabe an den Browser.
Bei Eintragung in die Datenbank musst du der Datenbank das Charset richtig mitteilen. Im Falle einer eMail-Übertragung musst du entsprechend dem MIME-Protokoll ebenfalls einen korrekten Content-Type mit Charset senden.
 
Ich erzähl doch dem Server mit welchem ich sende.
Also sollte dies auch alles richtig dargestellt werden.

Sprich irgendwo im Server steht was falsches.
Und das würde ich gerne finden.
 
Du meinst /etc/apache2/httpd.conf.

Die ist leer.

Und in der /etc/apache2/conf.d/charset steht folgende Eintrag

Code:
#AddDefaultCharset UTF-8

Ist halt nur ausgeklammert.
 
Du musst den HTTP-Header überprüfen. Das Charset, was dem Useragent übermittelt wird, muss auch mit dem tatsächlichen Charset übereinstimmen. Andersfalls gibt es freilich Probleme bei der Darstellung.

wäre es nicht erstmal relevanter zu wissen, in welchem Charset der Browser rendert? ;)

Firefox: Extras -> Seiteninformationen -> Zeichenkodierung


hast du es in deinem Editor denn auch als UTF-8 abgespeichert? :biggrin:
 
Vllt. /etc/apache2/apache2.conf (wäre z.b. bei debian der Fall).

Ansonsten mal hiermit versuchen:
PHP:
header("Content-Type: text/html; charset=utf-8");

In der apache2.conf steht nix drin was mit Charset auch nur entfernt zu tun haben könnte. Und mit header ging auch nix.

wäre es nicht erstmal relevanter zu wissen, in welchem Charset der Browser rendert?

utf-8.

hast du es in deinem Editor denn auch als UTF-8 abgespeichert?

Meinst Du das jetzt ernst?
 
Ist die Datenbank-Verbindung auf UTF-8 eingestellt?
Was passiert wenn du die Daten des Formulars direkt wieder ausgibst? Sind die UTF-8 kodiert?
 
Zuletzt bearbeitet:
Ist die Datenbank-Verbindung auf UTF-8 eingestellt?
Was passiert wenn du die Daten des Formulars direkt wieder ausgibst? Sind die UTF-8 kodiert?

Laut phpmyadmin ist alles ok.

MySQL-Zeichensatz: UTF-8 Unicode (utf8)
Zeichensatz / Kollation der MySQL-Verbindung: utf8_unicode_ci

PHP:
$query = "SET NAMES 'utf8'";
mysql_query($query);

Das hat geholfen. Danke