hosch: Text mit Umlaute werden nicht angezeigt

Hallo,
ich habe XAMPP mit PHP Version 5.4.7 und MySQL Versions 4.0.4.2 installiert.
Habe ich jetzt Texte in der Datenbank, die Umlaute enthalten, werden diese gar nicht angezeigt.
Ich habe die Texte in der PHP-Datei mit htmlentities() formatiert.
Wie kann ich das Problem beheben?
Danke für die Hilfe!

  1. Hi,

    das mit den Umlauten ist ein ewiges Thema bei mir.
    Eine durchgängige Lösung hab ich nicht.

    Setz am Anfang der php Datei:

    //header('Content-Type: text/html; charset=ISO-8859-1'); // wenn ? ausgibt  
    header('Content-Type: text/html; charset=UTF-8'); // wenn zwei zeichen ausgibt
    

    Bei mir sind die Umlaute nicht als „lesbare“ in der DB.
    sondern konvertiert HTML
    <meta charset="ISO-8859-1">

    Viele Grüße aus LA

    --
    ralphi
  2. Habe ich jetzt Texte in der Datenbank, die Umlaute enthalten, werden diese gar nicht angezeigt.

    Ein Umlaut reicht, und der gesamte Text verschwindet?

    Ich habe die Texte in der PHP-Datei mit htmlentities() formatiert.

    Ich arbeite in der Datenbank, im PHP-Programm und im Browser durchgehend mit UTF-8

    echo "[äöüßÄÖÜ] [".htmlentities('äöüßÄÖÜ')."]<br>";
    ergibt im Quellcode: [äöüßÄÖÜ] [&Atilde;&curren;&Atilde;&para;&Atilde;&frac14;&Atilde;�&Atilde;�&Atilde;�&Atilde;�]<br>
    angezeigt sieht das so aus: [äöüßÄÖÜ] [äöüÃ�Ã�Ã�Ã�]

    Also weder der Text noch die Umlaute verschwinden, sie werden durch htmlentities verfälscht.

    Linuchs

  3. Tach!

    ich habe XAMPP mit PHP Version 5.4.7 und MySQL Versions 4.0.4.2 installiert.

    MySQL 4 und noch dazu 4.0 ist völlig veraltet. Ist das ein Schreibfehler oder wirklich so? MySQL 4.0 jedenfalls hat, was Zeichenkodierungen angeht, nur eine sehr rudimentäre Unterstützung eingebaut. Erst ab 4.5 ist das brauchbar. Aktuell sind aber die Version 5.6 oder MariaDB 10.0 (kompatibel zu MySQL 5.5 und 5.6).

    Habe ich jetzt Texte in der Datenbank, die Umlaute enthalten, werden diese gar nicht angezeigt.

    Bitte zunächst die Grundlagen erarbeiten: http://wiki.selfhtml.org/wiki/Zeichenkodierung

    Ich habe die Texte in der PHP-Datei mit htmlentities() formatiert.

    htmlentities() ist eine Funtion, die man bei korrektem Umgang mit Zeichenkodierung nicht braucht. (Allerdings braucht man weiterhin htmlspecialchars(). Näheres zu dieser Problematik siehe Kontextwechsel.) Jedenfalls klappt es nicht, einfach eine Funktion auf eine Bytefolge zu hauen und ein Ergebnis zu erwarten, das man sich lediglich vorgestellt hat. Auch wenn man htmlentities() anwendet, benötigt man ein Grundverständnis zum Thema Zeichenkodierung, wenn ein brauchbares Ergebnis rauskommen soll.

    Wie kann ich das Problem beheben?

    Zunächst wäre eine Analyse notwendig. Wenn du allerdings noch am Anfang des Projekts stehst und keine bereits fehlerhaft kodierten Daten korrigieren musst, reicht es, die Hinweise zur Konfiguration der beteiligten Systeme im verlinkten Artikel und seinen Unterseiten zu beachten.

    dedlfix.