UTF-8-Kodierungsprobleme mit PDO und MySQL
Bei Verwendung der PHP Data Objects (PDO)-Bibliothek mit einer MySQL-Datenbank kann es vorkommen, dass Sie Probleme mit der UTF-8-Kodierung haben Es treten Probleme mit der UTF-8-Kodierung auf. In die Datenbank in UTF-8 eingefügte Daten werden möglicherweise als beschädigte Zeichen wie „?????????“ angezeigt.
Um dieses Problem zu beheben, führen Sie gemäß den Richtlinien in Ihrem Framework die Abfragen „ aus. SET NAMES utf8“ und „SET CHARACTER SET utf8“ nach dem Aufbau der PDO-Verbindung. Wenn diese Abfragen das Problem jedoch nicht beheben, ziehen Sie die folgende Problemumgehung in Betracht:
Problemumgehung:
Konvertieren Sie die Daten in eine JSON-codierte Zeichenfolge, bevor Sie sie in das einfügen Datenbank mithilfe der Funktion json_encode. Rufen Sie die Daten mit json_decode ab, nachdem Sie sie aus der Datenbank abgerufen haben. Dieser Ansatz sollte das Codierungsproblem beheben.
Optimierter Ansatz:
Für PHP-Versionen 5.3.5 und früher können Sie den UTF-8-Zeichensatz während der Verbindungsinitialisierung festlegen . Dies kann mit dem folgenden Code erreicht werden:
$pdo = new PDO( 'mysql:host=hostname;dbname=defaultDbName', 'username', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8") );
Dadurch wird sichergestellt, dass die UTF-8-Kodierung auf der PDO-Verbindung erzwungen wird, wodurch das Problem mit fehlerhafter UTF-8-Kodierung behoben wird.
Das obige ist der detaillierte Inhalt vonWie löst man UTF-8-Kodierungsprobleme mit PDO und MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!