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