Heim >Datenbank >MySQL-Tutorial >Warum werden meine Zeichen beim Speichern von Daten in meiner Java-Webanwendung durch \'?\' ersetzt?
JDBC-Zeichenkodierungsproblem in Java-Webanwendung behoben
In einer Java-Webanwendung, die auf GlassFish 3 bereitgestellt wurde und JPA (EclipseLink) mit einem verwendet MySQL-Datenbank: Ein Benutzer hat beim Speichern von Daten über die Methode update() Codierungsdiskrepanzen festgestellt. Zeichen in Zeichenfolgenfeldern wurden durch „?“ ersetzt. Symbole beim Einfügen in die Datenbank.
Obwohl der Server, die Webseiten und die Datenbank für die Verwendung von UTF-8 konfiguriert wurden, blieb das Problem weiterhin bestehen. Während die Daten auf den folgenden Seiten korrekt angezeigt wurden und beim NetBeans-Debugging gültig erschienen, blieben Zweifel an der Genauigkeit der Debug-Übersetzung.
JDBC-Konfiguration der Täter
Tracing the Als Grundursache wurde festgestellt, dass in diesem Szenario JDBC und nicht JPA die Zeichenkodierung regelt. Durch Anhängen des folgenden Parameters an die JDBC-Verbindungs-URL:
characterEncoding=utf8
wurde das Codierungsproblem behoben. Die geänderte Verbindungs-URL stellt sicher, dass die UTF-8-Zeichenkodierung explizit für die JDBC-Kommunikation mit der MySQL-Datenbank definiert ist, wodurch das Integritätsproblem in Zeichenfolgenfeldern behoben wird.
Das obige ist der detaillierte Inhalt vonWarum werden meine Zeichen beim Speichern von Daten in meiner Java-Webanwendung durch \'?\' ersetzt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!