[JAVA] Vérifiez si les caractères à deux octets sont déformés lors du stockage des informations acquises par l'API, etc. dans la base de données MySQL.

introduction

Il est similaire à un mémo que le caractère double octet acquis était déformé et a été résolu après avoir vérifié diverses choses.

environnement

Données obtenues à l'aide du client Http de Java J'essaie de me connecter à MySQL en utilisant le pilote JDBC et de le mettre dans la base de données.

Celui-là

Avez-vous lancé le sort habituel lorsque vous avez créé la table? Les sorts habituels sont:

set character_set_client = utf8;
set character_set_connection = utf8;

CREATE TABLE `TABLE_NAME` (

(Abréviation)

) DEFAULT CHARSET=utf8';

Le but est de lancer le sort avant de lancer le SQL, Si vous êtes inquiet, lancez le sort à la fin de l'instruction CREATE TABLE.

Pour que

Lancez-vous un sort lors de la création d'une requête avec HttpClient?

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();

Le charset = UTF-8 derrière setHeader est le sort.

Cette personne

Lancez-vous un sort dans les informations des paramètres du pilote JDBC?

dbconnection.properties


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

Le «mysql.test.com» ci-dessus est la destination de la connexion et «mydb» est le nom de la base de données. Notez le suivant ? UseUnicode = true & characterEncoding = utf8. Je lance un sort.

à la fin

Dans mon cas, that résolu. J'ai implémenté quelque chose de similaire dans exactement le même environnement, mais à ce moment-là, les personnages n'étaient pas déformés ...

Recommended Posts

Vérifiez si les caractères à deux octets sont déformés lors du stockage des informations acquises par l'API, etc. dans la base de données MySQL.
[Java] Informations entières des caractères du fichier texte acquises par la méthode read ()
Ce que j'ai fait lorsque JSF ne pouvait pas afficher les informations de la base de données dans la vue
Les caractères japonais décrits dans MessageResources.properties sont déformés