[JAVA] Überprüfen Sie, ob Doppelbyte-Zeichen beim Speichern der von der API usw. erfassten Informationen in der MySQL-Datenbank verstümmelt sind.

Einführung

Es ist ähnlich wie in einem Memo, dass das erworbene Doppelbyte-Zeichen verstümmelt und nach Überprüfung verschiedener Dinge aufgelöst wurde.

Umgebung

Daten, die mit dem Java-HTTP-Client abgerufen wurden Ich versuche, mit dem JDBC-Treiber eine Verbindung zu MySQL herzustellen und diese in die Datenbank zu stellen.

Das hier

Haben Sie beim Erstellen der Tabelle den üblichen Zauber gesprochen? Die üblichen Zaubersprüche sind:

set character_set_client = utf8;
set character_set_connection = utf8;

CREATE TABLE `TABLE_NAME` (

(Abkürzung)

) DEFAULT CHARSET=utf8';

Der Punkt ist, den Zauber vor dem Wirken der SQL zu wirken, Wenn Sie sich Sorgen machen, sprechen Sie den Zauber am Ende der Anweisung CREATE TABLE.

Dazu

Wirken Sie einen Zauber, wenn Sie eine Anfrage mit HttpClient erstellen?

HttpClient client = HttpClient.newBuilder().version(Version.HTTP_2).build();
Builder requestBuilder = HttpRequest.newBuilder().uri(uri).setHeader("Content-type","application/json; charset=UTF-8");
HttpRequest request = requestBuilder.build();

Der charset = UTF-8 hinter setHeader ist der Zauber.

Diese Person

Wirken Sie einen Zauber in den Informationen zu den JDBC-Treibereinstellungen?

dbconnection.properties


driver.class.name=com.mysql.jdbc.Driver
uri=jdbc:mysql://mysql.test.com/mydb?useUnicode=true&characterEncoding=utf8

Das obige mysql.test.com ist das Verbindungsziel und mydb ist der Datenbankname. Beachten Sie das nachfolgende ? UseUnicode = true & characterEncoding = utf8. Ich spreche einen Zauber.

schließlich

In meinem Fall das gelöst. Ich habe etwas Ähnliches in genau derselben Umgebung implementiert, aber zu diesem Zeitpunkt waren die Charaktere nicht verstümmelt ...

Recommended Posts

Überprüfen Sie, ob Doppelbyte-Zeichen beim Speichern der von der API usw. erfassten Informationen in der MySQL-Datenbank verstümmelt sind.
[Java] Ganzzahlige Informationen von Zeichen in der Textdatei, die mit der Methode read () erfasst wurden
Was ich getan habe, als JSF keine Datenbankinformationen in der Ansicht anzeigen konnte
In MessageResources.properties beschriebene japanische Zeichen sind verstümmelt