Ce forum est maintenant fermé, seule cette archive statique reste consultable.
  FORUM Rue-Montgallet.com
  Programmation
  Java

  [ RESOLU ] PB encodage UTF-8 avec Japonais, Chinois

Bas de page
Auteur Sujet :

[ RESOLU ] PB encodage UTF-8 avec Japonais, Chinois

n°18687
ch33k0n
Profil : Membre
Posté le 15-06-2007 à 18:31:57  
 

J’ai une base de donnée MYSQL, une table de users avec des nom, prenom en français, anglais, arabe, japonais et mandarin.
La table est au format : utf8_unicode_ci
 
Mon problème est que je n’arrive pas à récupérer les contenus arabe, japonais et mandarin comme il faut.
Par exemple, pour le mandarin, java me retourne : ‘他有理性良心’,  dans un fichier .html encodé en utf8.
Lorsque j’ouvre firefox et que je change l’encodage, la valeur de la base '他有理性良心' apparait comme il faut.
 
Si je l’affiche dans la console d’eclipse, ça affiche des « ? »
 
J'ai essayé d'utiliser :
Charset charset2 = Charset.forName("UTF-8" );
CharsetDecoder decoder = charset2.newDecoder();
ByteBuffer byteBuf2 = charset2.encode(resultat.getString("lastname" ));
ou  
 InputStream in = new ByteArrayInputStream(resultat.getString("lastname" ).getBytes("UTF-8" ));  
 InputStreamReader chaine = new InputStreamReader(in, "UTF8" );  
 BufferedReader br = new BufferedReader ( chaine ) ;  
mais j'ai a chaque fois des '?'.
 
Merci par avance de votre aide ;)
 
 
 
Le code est le suivant :
package remy;
import java.sql.*;
import java.lang.Class;
import java.io.*;
 
class testsql{
 
 public static void main(String[] args){
 String pilote = "com.mysql.jdbc.Driver";
 try{
  Class.forName(pilote);
  Connection connexion = DriverManager.getConnection("jdbc:mysql://localhost/translate","root","" );
  Statement instruction = connexion.createStatement();
  ResultSet resultat = instruction.executeQuery("SELECT * FROM users" );
  while(resultat.next())
  {
   System.out.println("---------------------------" );
   System.out.println("Prénom : "+resultat.getString("firstname" ));
   System.out.println("Nom : "+resultat.getString("lastname" ));
   System.out.println("Langue : "+resultat.getString("lang" ));
   
   try {
       FileOutputStream fos = new FileOutputStream("test.html" );
       Writer out = new OutputStreamWriter(fos, "UTF-8" );
       out.write(resultat.getString("lastname" ));
       out.close();
   }
   catch (IOException e) {
       e.printStackTrace();
   }
  }
 }
catch (Exception e){
 System.out.println("echec pilote : "+e);
 }
}
}
 
 
 
 
Mysql 5
Java 1.6


Message édité par ch33k0n le 18-06-2007 à 12:00:48
mood
Pub
Posté le 15-06-2007 à 18:31:57  
 

n°18688
ch33k0n
Profil : Membre
Posté le 15-06-2007 à 21:25:37  
 

up

n°18692
ch33k0n
Profil : Membre
Posté le 17-06-2007 à 22:17:39  
 

Sniff personne :(

n°18695
ch33k0n
Profil : Membre
Posté le 18-06-2007 à 12:00:27  
 
  FORUM Rue-Montgallet.com
  Programmation
  Java

  [ RESOLU ] PB encodage UTF-8 avec Japonais, Chinois

© 2000-2024 Forum.rue-montgallet.com - Tous droits réservés