2010-06-11 4 views
0

J'ai écrit une application qui analyse le code html de certaines pages Web. Mon problème est avec l'insertion de ces données dans ma base de données MySQL. Donc, par exemple, je veux insérer ľščťžýáíé et quand je regarde dans la table je reçois? Š ?? žýáíé.Problème de caractères lors de l'insertion dans la base de données mysql depuis l'application Java

Je suppose que le problème pourrait être que les pages html que je télécharge sont codées en cp1250. mais la base de données est utf8.

BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream(),"cp1250")); 

et c'est ainsi que je télécharge les données.

Avez-vous des idées pour résoudre ce problème? Parce que je suis déjà sorti.

Editer: oh et quand j'écris les données sur la console (avec System.out, je sais que je ne devrais pas l'utiliser ... :)) alors chaque caractère s'affiche correctement.

+0

comment regardez-vous dans la table? Assurez-vous que le programme que vous utilisez pour voir ce qui est dans la base de données a le jeu de caractères défini sur utf-8 –

+0

j'utilise phpmyadmin, et je suis assez sûr qu'il supporte utf8, mais j'ai l'intuition qu'il y a une erreur lors de l'insertion ... mon application Java ne convertit pas ces caractères correctement ou en quelque sorte la connexion est mal configurée, et je ne peux pas comprendre ce qui ne va pas. – Gabriel

Répondre

0

donc j'ai trouvé ce qui fonctionne.

Comme je me connecte à MySQL via JDBC à i utiliser la chaîne de connexion suivante

conString = "jdbc:mysql://"+host+"/"+database+"?useUnicode=true&characterEncoding=utf8"; 

Et cela a fait l'affaire. J'ai dû forcer JDBC à utiliser utf8 pour la connexion en utilisant ?useUnicode=true&characterEncoding=utf8

0

un problème set names CP1251; juste après votre connexion à mysql et avant les insertions

+0

l'a essayé, mais certains caractères ne s'affichent pas correctement. – Gabriel

Questions connexes