Umlaute in DB nicht korrekt (UTF8)

deb_ugger

Erfahrenes Mitglied
Hallo zusammen,

ich habe meine Seite komplett in UTF-8 erstellt.
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Auch die mysql-Datenbank verwendet die Kollation "utf8_general_ci".

Dennoch werden meine Sonderzeichen in der Datenbank falsch dargestellt, beispielsweise wir aus "ü" --> "ü". Normal ist das nicht, oder?

Speziell bei einer Datenbank-Abfrage habe ich dann nämlich das Problem, dass Begriffe mit Sonderzeichen nicht gefunden werden.

Kann mir da jemand helfen?

Danke!
 
Zuletzt bearbeitet:
Ich habe das selbe Problem. Zuerst klappte alles wunderbar, jetzt werden Umlaute durch ? oder Kästchen ersetzt (in der Ausgabe).

Ich suche jetzt eine Funktion, die vor dem Speichern der Daten Die Umlaute ersetzt durch z.B. & Auml ;.

Hier mein Ansatz, der aber nicht klappt:
PHP:
<?php
$text = "Hallo RädhÄd. Dies ist ein Text mit Umlauten 'löl' ß";
$umlaute("ä","ö","ü","ß","Ä","Ö","Ü");
$encodedumlaute("&auml;","&ouml;","&uuml;","&szlig;","&Auml;","&Ouml;","&Uuml;");
$ecnodedtext = str_replace($umlaute,$encodedumlaute,$text);
echo $encodedtext;
?>
Hat jemand vielleicht schonmal sowas gemacht? Mein Fehler scheint zu sein, dass ich bei str_replace als 2. Parameter kein Array nehmen darf :/


Gruß Radhad
 
Sollte ich die UTF8-Sache richtig verstanden haben, sollten ja die Sonderzeichen ohne Probleme richtig in der Datenbank gespeichert werden, oder? Ohne die Verwendung von replace-Funktionen und weiß Gott was alles --> das machts dann ja wieder ziemlich umständlich finde ich.

Hat jemand eine Idee, woran das liegen kann?
Oder muss ich hier dennoch utf8_encode() bzw. ut8_decode() verwenden?
 
Zuletzt bearbeitet:
Falls du MySQL benutzt sollte dies Abhilfe schaffen, einfach direkt als erste Queries zur Datenbank schicken:

Code:
"SET NAMES 'utf8'"
"SET CHARACTER SET 'utf8'"

Und am besten noch folgenden Header in PHP senden:

PHP:
header('Content-Type: text/html; charset=UTF-8');
 
Zuletzt bearbeitet:
Jetzt bekomme ich XML-Fehler mit dem & Zeichen, wenn es nicht als & amp ; geschrieben wurde. Ist das normal? Ich habe statt text/html text/xml gewählt.

Außerdem: ö wird als ? angezeigt. Siehe Link Bei rFactor Spalte Letzter Beitrag - "was mir pers?nlich am editor noch fehlt" das ? steht in der MySQL DB als ö drin. Beim validieren für XHTML bekomme ich auch an der Stelle den Fehler: Validate!



Gruß Radhad

Nachtrag: Hab die SET-Routine vergessen. Jetzt geht es!
 
Zuletzt bearbeitet:
Zurück