Umlaute mit UTF8 von MySQL werden nicht korrekt angezeigt.

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Umlaute mit UTF8 von MySQL werden nicht korrekt angezeigt.

    Meine Datei:

    PHP-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Test Seite</title>
    </head>
    <body>
    <?php

    echo 'öäü';

    require_once(
    'system/config.inc.php');
    require_once(
    'system/functions.inc.php');

    $dbh = new PDO('mysql:host='.DBHOST.';dbname='.DBNAME.''DBUSERDBPASS);

    $sql 'SELECT * FROM textpage WHERE name = "TestSeite"';
    $row $dbh->query($sql)->fetch();

    echo 
    $row['content'];

    $dbh NULL;

    ?>
    </body>
    </html>
    - Die Datei ist auf Charset utf-8 gesetzt wie man sieht.
    - Die Datei ist UTF8 kodiert gespeichert.
    - Die Collation in der MySQL ist auf utf8_general_ci gesetzt

    Die 3 Umlaute ganz oben, die direkt in der Datei stehen, werden korrekt angezeigt. Alle Umlaute die über die Datenbank eingelesen werden, werden durch Fragezeichen ersetzt. Was habe ich vergessen?

  • #2
    SET NAMES

    Kommentar


    • #3
      Wunderbar, danke dir.

      Bei PDO sieht dass dann so aus:
      PHP-Code:
      $dbh->exec('SET CHARACTER SET utf8'); 
      und kann direkt nach dem öffnen der Verbindung gesetzt werden.

      Bsp:
      PHP-Code:
      $dbh = new PDO('mysql:host='.DBHOST.';dbname='.DBNAME.''DBUSERDBPASS);
      $dbh->exec('SET CHARACTER SET utf8');

      $sql 'SELECT * FROM textpage WHERE name = "TestSeite"';
      $row $dbh->query($sql)->fetch();

      echo 
      $row['content'];

      $dbh NULL

      Kommentar

      Lädt...
      X