Um den verstümmelten JSP-Code zu lösen, müssen Sie zunächst die Gründe für den verstümmelten JSP-Code verstehen.
1. Wenn Sie den Server einrichten und MYSQL installieren, werden Sie aufgefordert, eine Codierung auszuwählen kann dazu führen, dass die JSP-Seite verstümmelt wird.
2. Wenn Sie eine Datenbank in Systemen wie PHPMYADMIN oder MySQL-Front erstellen, werden Sie aufgefordert, eine Kodierung auszuwählen. Wenn diese Kodierung nicht mit Ihrer Webseite übereinstimmt, kann dies auch zu verstümmelten JSP-Seiten führen.
3. Beim Erstellen einer Tabelle werden Sie aufgefordert, eine Kodierung auszuwählen. Wenn diese Kodierung nicht mit der Kodierung Ihrer Webseite übereinstimmt, kann dies auch dazu führen, dass die JSP-Seite verstümmelt wird.
4. Sie können die Codierung beim Hinzufügen von Feldern beim Erstellen einer Tabelle auswählen. Wenn diese Codierung nicht mit der Codierung Ihrer Webseite übereinstimmt, kann dies auch dazu führen, dass die JSP-Seite verstümmelt wird.
5. Die Codierung der vom Benutzer übermittelten JSP-Seite stimmt nicht mit der Codierung der JSP-Seite überein, auf der die Daten angezeigt werden, was definitiv dazu führt, dass die JSP-Seite verstümmelt wird.
Beispielsweise ist die JSP-Seite, auf der der Benutzer Daten eingibt, im Big5-Code, die JSP-Seite, auf der die Benutzereingaben angezeigt werden, jedoch in gb2312. Dies führt zu 100 % dazu, dass die JSP-Seite verstümmelt wird.
6. Bitte beachten Sie, dass der Zeichensatz falsch ist:
1. Der Text, den Sie normalerweise auf einigen Websites sehen, kann beispielsweise mehrere Codierungen haben. Wenn Sie beispielsweise ein traditionelles chinesisches Zeichen sehen, kann es eine Big5-Codierung, eine UTF-8-Codierung oder eine GB-Codierung sein. Das heißt, es gibt traditionelle chinesische Schriftzeichen, die in vereinfachtem Chinesisch kodiert sind, und es gibt auch vereinfachte chinesische Schriftzeichen, die in traditionellem Chinesisch kodiert sind. Sie müssen dies verstehen.
Wenn Sie eine Webseite mit vereinfachter chinesischer Kodierung erstellen, ist die Kodierung auf GB2312 eingestellt. Wenn Besucher aus Hongkong und Taiwan traditionelle chinesische Informationen übermitteln, kann es zu verstümmelten Codes kommen. Die Lösung ist (1) Stellen Sie die Website-Kodierung auf utf-8 ein , damit es mit allen Zeichen der Welt kompatibel ist (2) Wenn die Website schon lange läuft und viele alte Daten enthält und die Einstellungen für vereinfachtes Chinesisch nicht geändert werden können, wird empfohlen, die Seite einzurichten Kodierung nach GBK.
Der Unterschied zwischen GBK und GB2312 besteht darin, dass GBK mehr Zeichen anzeigen kann als GB2312. Um herkömmliche Zeichen in vereinfachtem Code anzuzeigen, können Sie nur GBK verwenden
7. Die in der JSP-Verbindungsanweisung zur MYSQL-Datenbank angegebene Codierung ist falsch.
8. Wenn die JSP-Seite die Codierung für die Datenübermittlung nicht angibt, führt dies zu verstümmeltem Code:
Daher sind die Gründe für den verstümmelten JSP-Code nichts anderes als die oben genannten. Nachdem Sie die Gründe kennen, ist es viel einfacher, den verstümmelten JSP-Code zu lösen Code. Lassen Sie uns sie einzeln ausdrücken:
1. Wenn der Code für die Installation von MySQL nicht geändert werden kann, kaufen viele Freunde virtuelle Hosts, um Websites zu erstellen, und haben nicht das Recht, den Installationscode für MYSQL zu ändern. Wir können diesen Schritt überspringen, denn solange die folgenden Schritte korrekt sind, Das Problem mit dem verstümmelten Code kann immer noch gelöst werden.
2. Ändern Sie die Datenbankkodierung. Wenn die Datenbankkodierung falsch ist: Sie können den folgenden Befehl in phpmyadmin ausführen: ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
Mit dem obigen Befehl wird die Codierung der Testdatenbank auf utf8 festgelegt
3. Ändern Sie die Kodierung der Tabelle: ALTER TABLE `category` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin
Mit dem obigen Befehl wird die Codierung einer Tabellenkategorie in utf8 geändert
4. Ändern Sie die Kodierung des Feldes:
ALTER TABLE `test` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
Mit dem obigen Befehl wird die Feldcodierung von dd in der Testtabelle in utf8 geändert
5. Wenn diese Situation leicht zu lösen ist, überprüfen Sie einfach die Seite und ändern Sie den Zeichensatz der Quelldatei.
, //Wenn dies korrekt ist, wird es kein Problem geben
6. In diesem Fall können Sie auch den Seitenzeichensatz ändern.
7. In der JSP-Anweisung zum Herstellen einer Verbindung zur Datenbank:
private String url="jdbc:mysql://localhost/"+DB_NAME+" user="+LOGIN_NAME+"&password="+LOGIN_PASSWORD+"&characterEncoding=GBK" //Der Schlüssel hängt von der Zeichenkodierung ab
8. Fügen Sie in diesem Fall einfach request.setCharacterEncoding("GBK") am Anfang der Seite hinzu
. Hinweis: Nach der Änderung gemäß der oben genannten Methode können Sie nur sicherstellen, dass Ihre Daten neu eingefügt werden Die Daten werden nicht verstümmelt. Beispiel: Wenn die von Ihrem Benutzer übermittelten Daten BIG5 sind, Sie jedoch die oben beschriebene Methode verwenden möchten, um sie korrekt auf der GB2312-Webseite anzuzeigen, ist dies nicht möglich Die Transformation kann nur durch das Schreiben eines anderen Programms gelöst werden. Weitere verwandte Artikel finden Sie auf WEB745.com
Zusammenfassung: Zunächst müssen Sie feststellen, ob die JSP-verstümmelten Zeichen nach dem Einfügen in die Datenbank verstümmelt sind oder ob die JSP-Seite unmittelbar nach dem Senden verstümmelt ist. Wenn die JSP unmittelbar nach dem Empfang der Daten von der vorherigen Seite verstümmelt ist, Es muss sein, dass der Zeichensatz falsch ist, aber request.setCharacterEncoding nicht hinzugefügt wird („GBK“).
Wenn es an der Datenbank liegt, lesen Sie bitte die oben genannten Methoden 2, 3 und 4.
Möglicherweise handelt es sich um ein Codierungsproblem. Stellen Sie eine Verbindung zur Datenbank her und sehen Sie nach.
jdbc:mysql://localhost:3306/xxxx useUnicode=true&characterEncoding=UTF-8
Sehen Sie, ob es funktioniert