Heim > Datenbank > MySQL-Tutorial > Warum werden meine kyrillischen Zeichenfolgen in meiner MySQL-Datenbank als „????????' angezeigt, obwohl ich in meiner JDBC-Verbindung „characterEncoding=utf-8' eingestellt habe?

Warum werden meine kyrillischen Zeichenfolgen in meiner MySQL-Datenbank als „????????' angezeigt, obwohl ich in meiner JDBC-Verbindung „characterEncoding=utf-8' eingestellt habe?

Susan Sarandon
Freigeben: 2024-11-01 22:38:02
Original
1065 Leute haben es durchsucht

Why are my Cyrillic strings appearing as

So kodieren Sie UTF-8-Strings korrekt für MySQL mit JDBC

Einführung

Wann Bei der Arbeit mit MySQL über JDBC ist es wichtig zu verstehen, wie man UTF-8-Strings richtig kodiert, um die Datenintegrität sicherzustellen und Zeichenbeschädigungen zu vermeiden. Dieser Artikel befasst sich mit dem häufigen Problem einer falschen UTF-8-Codierung, die zu verstümmeltem Text in MySQL führt.

Problembeschreibung

Zeilen, die mithilfe von JDBC in eine MySQL-Tabelle eingefügt wurden, wurden angezeigt mit falschen Zeichen, mit der Anzeige „????????“ anstelle des vorgesehenen kyrillischen Textes. Dieses Problem blieb trotz der Einstellung „characterEncoding=utf-8“ in der Verbindungszeichenfolge und der Ausführung von SQL-Anweisungen zum Festlegen des Zeichensatzes bestehen.

MySQL-Konfiguration

Um das Problem zu beheben ist es wichtig, die MySQL-Konfigurationseinstellungen zu überprüfen. Führen Sie die folgenden Befehle aus, um die Einstellungen für Zeichenkodierung und Sortierung zu überprüfen:

show variables like 'character%';
show variables like 'collation%';
Nach dem Login kopieren

JDBC-Verbindungskonfiguration

Stellen Sie sicher, dass die JDBC-Verbindungszeichenfolge die richtige Zeichenkodierung und Unicode enthält Einstellungen:

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/myDatabase?useUnicode=true&characterEncoding=UTF-8","user","passwd");
Nach dem Login kopieren

SQL-Anweisungen für die Zeichensatzverwaltung

Es ist im Allgemeinen nicht erforderlich, SQL-Anweisungen auszuführen, um den Zeichensatz und die Kodierung explizit festzulegen. Standardmäßig verwendet MySQL die über my.cnf oder my.ini konfigurierten Einstellungen. In einigen Fällen müssen Sie jedoch möglicherweise die folgenden Anweisungen ausführen:

<code class="sql">SET NAMES 'utf8';
SET CHARACTER SET 'utf8';</code>
Nach dem Login kopieren

Datenbanktabellendefinition

Stellen Sie sicher, dass die Datenbanktabelle mit dem richtigen Zeichen definiert ist Satz und Kodierung:

<code class="sql">CREATE TABLE clt (
  id bigint NOT NULL,
  text varchar(50) NOT NULL
) DEFAULT CHARACTER SET utf8;</code>
Nach dem Login kopieren

Entfernen unnötiger SQL-Anweisungen

Der bereitgestellte Beispielcode führt unnötigerweise SQL-Anweisungen aus, um den Zeichensatz festzulegen. Durch Entfernen der folgenden Anweisungen wird das Problem behoben:

<code class="sql">query = "set character set utf8";
stat.execute(query);</code>
Nach dem Login kopieren

Datenbankseitige Konfiguration

Überprüfen Sie als letzten Schritt, ob die datenbankseitige Konfiguration mit JDBC und Code übereinstimmt Einstellungen. Dazu gehört das Ändern von my.cnf oder my.ini, um die entsprechenden Zeichensatzserver- und Zeichensatzdateisystemparameter festzulegen.

Durch Befolgen dieser Richtlinien können Sie eine genaue UTF-8-Zeichenfolgenverarbeitung in Ihrem MySQL sicherstellen Datenbank über JDBC, um verstümmelten Text zu verhindern und die Datenintegrität aufrechtzuerhalten.

Das obige ist der detaillierte Inhalt vonWarum werden meine kyrillischen Zeichenfolgen in meiner MySQL-Datenbank als „????????' angezeigt, obwohl ich in meiner JDBC-Verbindung „characterEncoding=utf-8' eingestellt habe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage