Heim > Artikel > Backend-Entwicklung > Probleme mit dem TP-Framework und der PDO-Zeichenkodierung
Wenn Sie zum Einfügen und Abfragen einen Frame verwenden, wird dieser nicht verstümmelt. Wenn Sie zum Einfügen und Abfragen einen Frame verwenden, wird das von PDO eingefügte Chinesisch nicht verstümmelt , es wird verstümmelt sein, wenn Sie die PDO-Ausgabe verwenden, um das von TP eingefügte Chinesisch zu überprüfen. Aus diesem Grund wird es verstümmelt. Wenn Sie Chinesisch direkt in das schwarze MySQL-Fenster einfügen, wird das Chinesisch nicht verstümmelt, wenn Sie PDO verwenden. Ich habe diesen Satz zu PDO hinzugefügt und er funktioniert nicht -type: text/html; charset=utf-8; ');
Ich habe die Zeichenkodierung schon einmal geändert, aber dann habe ich die Zeichenkodierung der Tabelle überprüft und herausgefunden, warum das Feld in uft8 ist Format, aber die Tabelle ist im GBK-Format? Wie können in einer solchen Situation die vom Framework und den PDO-Methoden abgefragten Chinesen nicht verstümmelt werden? Gibt es einen Zusammenhang zwischen der Kodierung eines bestimmten Feldes und der Kodierung dieser Tabelle? Welches sollte sich durchsetzen?
Dies ist die aktuelle Zeichenkodierung von MySQL
<code> CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `age` int(15) NOT NULL, `class` varchar(400) CHARACTER SET utf8 DEFAULT NULL, `name` varchar(12) CHARACTER SET utf8 DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=390 DEFAULT CHARSET=gbk | </code>
Wenn Sie zum Einfügen und Abfragen einen Frame verwenden, wird dieser nicht verstümmelt. Wenn Sie zum Einfügen und Abfragen einen Frame verwenden, wird das von PDO eingefügte Chinesisch nicht verstümmelt , wird es verstümmelt sein, wenn Sie die PDO-Ausgabe verwenden, um das von TP eingefügte Chinesisch zu überprüfen. Aus diesem Grund wird es verstümmelt. Wenn Sie Chinesisch direkt in das schwarze MySQL-Fenster einfügen, wird das Chinesisch nicht verstümmelt, wenn Sie PDO verwenden. Ich habe diesen Satz zu PDO hinzugefügt und er funktioniert nicht -type: text/html; charset=utf-8; ');
Ich habe die Zeichenkodierung schon einmal geändert, aber dann habe ich die Zeichenkodierung der Tabelle überprüft und herausgefunden, warum das Feld in uft8 ist Format, aber die Tabelle ist im GBK-Format? Wie können in einer solchen Situation die vom Framework und den PDO-Methoden abgefragten Chinesen nicht verstümmelt werden? Gibt es einen Zusammenhang zwischen der Kodierung eines bestimmten Feldes und der Kodierung dieser Tabelle? Welches sollte sich durchsetzen?
Dies ist die aktuelle Zeichenkodierung von MySQL
<code> CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `age` int(15) NOT NULL, `class` varchar(400) CHARACTER SET utf8 DEFAULT NULL, `name` varchar(12) CHARACTER SET utf8 DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=390 DEFAULT CHARSET=gbk | </code>
Das tp-Framework verwendet das utf8-Format, daher müssen Sie ein Problem mit dem Datenbankzeichensatz haben. Sie müssen die Datenbank auf utf8 einstellen, und die Tabelle muss auch auf utf8 eingestellt sein Code oben. Das Feld ist utf8, aber die Tabelle ist gbk. Da muss etwas falsch sein
<code> CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `age` int(15) NOT NULL, `class` varchar(400) CHARACTER SET utf8 DEFAULT NULL, `name` varchar(12) CHARACTER SET utf8 DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=390 DEFAULT CHARSET=utf8 |</code>
<code>ALTER DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci</code>
Keine Sorge, stellen Sie einfach alle an Ihrem gesamten Projekt beteiligten Codierungen auf utf8 ein und es wird keine Probleme mit verstümmeltem Code geben