• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Umlaute

Hallo,

ich bin gerade dabei mit meiner Seite um zu ziehen.
Und plötzlich habe ich mit den Umlauten Schwierigkeiten.

ich habe im head
<meta http-equiv="content-type" content="text/html; chartset=utf-8" />

und in der Datenbank mysql steht für die MySQL-Verbindung utf8_general_ci
Die Tabellen sind alle auf latin1_german1_ci

alles so wie bisher.
Und doch werden die Umlaute nicht mehr richtig angezeigt.
Die aus der Datenbank kommen und auch die aus der html/php datei kommen.

Ich möchte ungern alle Umlaute in in html-konvertieren. Besonders bei der Datenbank wäre das ziemlich lästig für die Übersichtlichkeit.
Und ist ja auch eigentlich nicht notwendig.

Aber ich sehe den Wald vor Bäumen nicht mehr.
Was könnte denn noch schuld sein. Das es plötzlich nicht mehr geht.
Ich habe nur an der Datenbank was verändert. bzw den Import der alten Daten gemacht.
Die html/php Dateien wurden nicht verändert.
 
Werbung:
Mach doch alles auf UTF-8 -> auch die Tabellen.

Vielleicht ist die Kommunikation zwischen PHP und MySQL nicht auf UTF-8?

Am Besten gleich nach der Datenbankverbindung bzw von jeglichem MySQL Query versenden:

mysql_query("SET NAMES 'utf8'");
 
Wenn du dann immernoch probleme hast ersetze die Umlaute doch einfach.

$formatiert = str_replace("ö","&ouml;",$nichtformatiert);
$formatiert = str_replace("Ö","&ouml;",$nichtformatiert);
$formatiert = str_replace("ä","&auml;",$nichtformatiert);
$formatiert = str_replace("Ä","&Auml;",$nichtformatiert);
....
 
Werbung:
Abgesehen von den beiden Tipps zur Datenbank solltest Du auch den vom Server zurückgegebenen Content-type prüfen. Dieser entspricht nicht dem im HTML-Code geschriebenen Content-type mit Zeichensatz. Wenn der Server dort etwas anderes als utf-8 zurück gibt, hast Du (noch eine?) Ursache gefunden. Prüfen kann man das z.B. mit dem Webdeveloper für Firefox oder auch dem HTML-Validator vom W3C sowie mit unzähligen weiteren Tools.

@Mrunincredible1: Dieser Tipp ist hier falsch angebracht und könnte, je nachdem in welchem Zeichensatz die Datei selbst gespeichert ist, auch überhaupt nicht funktionieren. Ziel sollte es sein an allen Stellen den selben Zeichensatz zu verwenden - dann braucht man auch keine HTML-Kodierungen.
 
Abgesehen von den beiden Tipps zur Datenbank solltest Du auch den vom Server zurückgegebenen Content-type prüfen. Dieser entspricht nicht dem im HTML-Code geschriebenen Content-type mit Zeichensatz. Wenn der Server dort etwas anderes als utf-8 zurück gibt, hast Du (noch eine?) Ursache gefunden. Prüfen kann man das z.B. mit dem Webdeveloper für Firefox oder auch dem HTML-Validator vom W3C sowie mit unzähligen weiteren Tools.

@Mrunincredible1: Dieser Tipp ist hier falsch angebracht und könnte, je nachdem in welchem Zeichensatz die Datei selbst gespeichert ist, auch überhaupt nicht funktionieren. Ziel sollte es sein an allen Stellen den selben Zeichensatz zu verwenden - dann braucht man auch keine HTML-Kodierungen.

Hier habe ich im Vergleich den Fehler gefunden.
Standart ist utf-8. Das war beim neunen Webspace eingestellt.
Im alten ISO-8859-1. Ich habe das übernommen. Und alles ist super.
Kann ich das auch in den html/php-Dateien eintragen. Ich weis ja nicht was andere evtl. sehen.
 
Werbung:
Vor allem anderen:
PHP:
header('Content-Type: text/html; charset=ISO-8859-1');

Fun fact: wird zu Windows-1252 in HTML5.
 
Zurück
Oben