Heim > Datenbank > MySQL-Tutorial > Wie löst man UTF-8-Kodierungsprobleme in MySQL und Java JDBC Connector 5.1?

Wie löst man UTF-8-Kodierungsprobleme in MySQL und Java JDBC Connector 5.1?

Susan Sarandon
Freigeben: 2024-10-29 08:34:02
Original
618 Leute haben es durchsucht

How to Solve UTF-8 Encoding Issues in MySQL and Java JDBC Connector 5.1?

Fehlerbehebung bei UTF-8-Kodierungsproblemen mit MySQL und Java JDBC Connector 5.1

In einem Szenario mit Synchronisierung zwischen zwei UTF-8-MySQL-Datenbanken mit IBATIS oder JDBC, Java-Entwickler können beim Umgang mit UTF-8-Daten auf Probleme stoßen. Hier finden Sie eine ausführliche Analyse des Problems und seiner Lösung.

Symptome:

  • Beim Lesen von Daten aus der ersten Datenbank stößt Java-Code auf Nicht-Standard Zeichen wie 'ó' statt 'ó'.
  • Die geschriebenen Daten in der zweiten Datenbank bleiben unverändert.
  • Anzeigen der geladenen Daten in einer Webanwendung (trotz Einstellung des Content-Type in HTML als „text/html; charset=utf-8“) zeigt immer noch die nicht standardmäßigen Zeichen an.
  • Beim Dekodieren der Daten mit „new String(data.getBytes(“UTF-8“))“ wird das erzeugt korrektes Zeichen ('ó'), eine globale Anwendung dieser Lösung ist nicht möglich.

Ursache:

  • Nicht übereinstimmende Zeichenkodierungseinstellungen zwischen der Datenbank, Java-Anwendung und Webanwendung.

Datenbankeinstellungen:

  • character_set_server: latin1
  • character_set_connection: utf8
  • character_set_results: utf8

Das Problem liegt hauptsächlich darin, dass die Einstellung „character_set_server“ „latin1“ ist.

Lösung:

An Um UTF-8-Daten mit dem JDBC Connector korrekt lesen und schreiben zu können, müssen diese Einstellungen bei der Verbindungsinitialisierung explizit festgelegt werden:

<code class="java">DriverManager.getConnection(
           "jdbc:mysql://" + host + "/" + dbName 
           + "?useUnicode=true&amp;characterEncoding=UTF-8", user, pass);</code>
Nach dem Login kopieren

Dadurch wird sichergestellt, dass die Verbindung durchgehend UTF-8-Kodierung verwendet, einschließlich Zeichenkodierung, Ergebnismengen, Ausnahmemeldungen und alle vom Treiber erstellten internen Zeichenfolgen.

Hinweis:

  • Das Problem betrifft hauptsächlich den Datenabruf aus der ersten Datenbank und das Schreiben in die zweite Datenbank.
  • Durch die Einhaltung dieser Einstellungen verarbeiten der Java-Code und die Webanwendung UTF-8-Daten korrekt, was zu einer korrekten Zeichenanzeige führt.

Das obige ist der detaillierte Inhalt vonWie löst man UTF-8-Kodierungsprobleme in MySQL und Java JDBC Connector 5.1?. 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