Bernd: utf8 Anzeige Problem bei MYSQLI

Bei mir werden Die Informationen die ich aus der Datenbank lese nicht korrekt angegeben.

Aus Ö Ä Ü werden ? bzw. andere Sonderzeichen.

In der Datenbank sind die Umlaute korrekt.

Ich denke das ich deshalb ein Ausgabe Problem mit UTF haben.

Kann ich in meine Abfrage charset=utf8 einfügen?


$db_host 		= 'localhost';
$db_name 		= 'datenbank';
$db_user 		= 'mozo';
$db_password 	= 'mozo';

$pdo = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_password);

Bernd

  1. Lese das hier durch und frage wieder, wenn Du etwas nicht verstanden hast:

    Zeichenkodierung/MySQL

  2. Tach!

    Bei mir werden Die Informationen die ich aus der Datenbank lese nicht korrekt angegeben.

    Aus Ö Ä Ü werden ? bzw. andere Sonderzeichen.

    In der Datenbank sind die Umlaute korrekt.

    Woraus schließt du dies? "Korrekt" ist kein absoluter Begriff. Je nach Kontext gibt es andere "Korrektheiten". Bei Zeichen ist der Kontext die Kodierung. Zeichen sind also gemäß einer bestimmten Kodierung korrekt oder auch nicht.

    Kann ich in meine Abfrage charset=utf8 einfügen?

    Kannst du. Es kann aber auch sein, dass das noch nicht reicht. Du hast ja vermutlich vorher ohne diese Angabe gearbeitet und damit dem DBMS Daten gesendet, die es gemäß seiner Voreinstellung interpretiert hat. Das kann zu einem gewollten oder auch fehlerhaften Zustand geführt haben. Wenn du nun diese Angabe hinzufügst, dann ist das nur sowas wie "Ab jetzt spreche ich Englisch." Ob du das dann auch wirklich machst, geht aus dieser Angabe nicht hervor, noch zwingt dich diese Angabe dazu, Englisch zu sprechen. Bezogen auf deinen Code musst du jetzt auch dafür sorgen, dass du UTF-8 zum DBMS schickst. Das heißt, die gesamte Verarbeitungskette, vorwärts und rückwärts, inklusive Browser muss mit UTF-8 arbeiten. Oder du kodierst um, was aber zu Datenverlust führen kann, weil andere Kodierungen nicht den gesamten Unicode-Vorrat kodieren können.

    dedlfix.