Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1476 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  PB encodage UTF-8 avec Japonais, Chinois, Arabe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PB encodage UTF-8 avec Japonais, Chinois, Arabe

n°1575699
ch33k0n
Posté le 15-06-2007 à 18:28:58  profilanswer
 

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 22-06-2007 à 16:21:23
mood
Publicité
Posté le 15-06-2007 à 18:28:58  profilanswer
 

n°1575706
guzman
Posté le 15-06-2007 à 18:56:54  profilanswer
 

Installe les langues asiatiques dans windows
 
Panneau de configuration > option linguistique > Langages > Installer les langues asiatiques (enfin un truc comme ca, j'ai la version English)


Message édité par guzman le 15-06-2007 à 18:58:50
n°1575719
archangel
Un homme Une vision
Posté le 15-06-2007 à 20:59:36  profilanswer
 

T'as essayé de spécifier l'encoding dans ton code HTML ?
Il me semble que lorsqu'il n'y a pas d'encoding dans ton code HTML le navigateur en choisit un par défaut, et je crois pas que ce soit UTF-8.

n°1575738
souk
Tourist
Posté le 15-06-2007 à 22:39:53  profilanswer
 

et utilise ca comme url jdbc:
 

jdbc:mysql://localhost:3306/translate?useUnicode=true&characterEncoding=UTF-8


 
ca peut aider egalement

n°1576104
ch33k0n
Posté le 18-06-2007 à 10:17:19  profilanswer
 

Merci, ça génère maintenant les bons caractères dans le fichier :D
Par contre, dans la console d'eclipse, ça affiche toujours des "?".
J'ai bien "Text file encoding" à UTF-8 dans "Workspace" dans "Preferences".
 
 
Est ce qu'il y a des versions du JDK spécifique pour les langues ?
 
 
Merci d'avance.

n°1576201
ch33k0n
Posté le 18-06-2007 à 11:58:20  profilanswer
 

Avec une JFrame tout s'affiche comme il faut :D
 
Merci  :love:

n°1578114
ch33k0n
Posté le 22-06-2007 à 16:20:13  profilanswer
 

Après quelques avancées sur le sujet, il paraitrait que l'utf-8 ne gère pas bien le Japonais.
 
Il y a 2 alphabets :
- un alphabet composé de "kanji" = ce sont comme les idéogrammes chinois (1 caractère = 1 mot)
- un alphabet "phonétique" composé de "katagana" et "hiragana" qui sont des caractères phonétiques (c'est-à-dire 1 caractère = 1 son, comme par exemple "wa", "sa" ou "bi", etc.)
 
note : l'alphabet phonétique a été inventé pour faciliter l'apprentissage et la lecture du japonais car il est beaucoup plus facile d'apprendre un nombre limité de sons que d'apprendre la totalité des idéogrammes (ce qui veut dire 1 dessin pour 1 mot)
 
Est ce que l'utf-8 permet d'afficher correctement un de ces 3 alphabets ?
 
ps : j'ai testé de mettre l'alphabet hiragana dans une table, ça à l'air normal mais je ne saurai remarquer de subtiles différences...

Message cité 1 fois
Message édité par ch33k0n le 27-06-2007 à 12:28:30
n°1578130
zapan666
Tout est relatif
Posté le 22-06-2007 à 16:37:47  profilanswer
 

ch33k0n a écrit :

Merci, ça génère maintenant les bons caractères dans le fichier :D
Par contre, dans la console d'eclipse, ça affiche toujours des "?".
J'ai bien "Text file encoding" à UTF-8 dans "Workspace" dans "Preferences".


Elle est configuré pour printer de l'UTF8 la console ? (Run... > Onglet Common > Console Encoding)


---------------
my flick r - Just Tab it !
n°1578154
souk
Tourist
Posté le 22-06-2007 à 17:12:47  profilanswer
 

ch33k0n a écrit :

Après quelques avancées sur le sujet, il paraitrait que l'utf-8 ne gère pas bien le Japonais.
 
Il y a 2 alphabets :
- un alphabet composé de "kanji" = ce sont comme les idéogrammes chinois (1 caractère = 1 mot)
- un alphabet "phonétique" composé de "katagana" et "hiragana" qui sont des caractères phonétiques (c'est-à-dire 1 caractère = 1 son, comme par exemple "wa", "sa" ou "bi", etc.)
 
note : l'alphabet phonétique a été inventé pour faciliter l'apprentissage et la lecture du japonais car il est beaucoup plus facile d'apprendre un nombre limité de sons que d'apprendre la totalité des idéogrammes (ce qui veut dire 1 dessin pour 1 mot)


Non, pas du tout, mais la n'est pas la question [:pingouino]
 

ch33k0n a écrit :


Est ce que l'utf-8 ne permet pas d'afficher correctement un de ces 3 alphabets ?
 
ps : j'ai testé de mettre l'alphabet hiragana dans une table, ça à l'air normal mais je ne saurai remarquer de subtiles différences...


et oui

n°1579865
ch33k0n
Posté le 27-06-2007 à 12:37:55  profilanswer
 

zapan666 a écrit :

Elle est configuré pour printer de l'UTF8 la console ? (Run... > Onglet Common > Console Encoding)


J'ai eclipse 3.2.2
Je ne trouve pas de "Console Encoding" dans les préférences, il y a juste le choix d'encodage des fichiers java.
 
Sinon, avant de se lancer dans le dev, si il y a des Japonais qui peuvent bien me confirmer que l'on peut stocker (correctement) au moins un des alphabets en UTF-8, je suis preneur :D
 

mood
Publicité
Posté le 27-06-2007 à 12:37:55  profilanswer
 

n°1579877
zapan666
Tout est relatif
Posté le 27-06-2007 à 13:08:28  profilanswer
 

http://img242.imageshack.us/img242/9383/eclipseou0.th.png

 

Pas dans les préférences, dans les options de Run.

Message cité 1 fois
Message édité par zapan666 le 27-06-2007 à 13:08:58

---------------
my flick r - Just Tab it !
n°1579912
olivthill
Posté le 27-06-2007 à 14:22:32  profilanswer
 

Vous trouverez à l'adresse suivante, http://kanji.free.fr/docs.php?doc=codage , une explication claire et presque exhaustive sur les divers codages des caractères japonais.
 
Pouriez-vous être plus précis dans votre description du problème ?
 
* Vous récupérez les caractères avec Firefox. OK ?
 
* Voulez-vous afficher les caractères avec I.E. ? Pour cela il faut l'extension Windows pour le japonais, téléchargeable depuis le site de Windows update.
 
* Voulez-vous afficher les caractères dans une console DOS ? Pour cela il faudrait paramètrer le bon codepage et la police de caractère.
 
* Voulez-vous afficher les caractères dans une application Windows 32-bit ordinaire ? Pour cela, il faut utiliser les bons paramètres. Je ne l'ai pas fait en Java, mais je l'ai fait en C en appelant les API CreateFont et SelectObject.


Message édité par olivthill le 27-06-2007 à 14:25:39
n°1579947
ch33k0n
Posté le 27-06-2007 à 15:12:33  profilanswer
 

zapan666 a écrit :


Pas dans les préférences, dans les options de Run.


Désolé de faire le boulet mais je n'ai pas d'options dans Run.
Mais bon, c'est pas grave, ça s'affiche bien dans une JFrame ;)
 
 
Tout s'affiche normalement, avec IE, Firefox, fenetre java...
Ce problème est RESOLU
 
En revanche, la question est maintenant de savoir si l'UTF-8 permet de bien coder l'alphabet Japonais.

Message cité 2 fois
Message édité par ch33k0n le 27-06-2007 à 15:15:07
n°1579966
zapan666
Tout est relatif
Posté le 27-06-2007 à 15:45:29  profilanswer
 

ch33k0n a écrit :

Désolé de faire le boulet mais je n'ai pas d'options dans Run.
Mais bon, c'est pas grave, ça s'affiche bien dans une JFrame ;)


 :D Si l'option apparait selon l'alignement des planêtes, c'est emmerdant.
Faudrait que je vérifie que chez moi je l'ai ou pas, pour savoir si c'est un plugins qui rajoute ça ou pas.


---------------
my flick r - Just Tab it !
n°1580609
souk
Tourist
Posté le 29-06-2007 à 00:52:54  profilanswer
 

ch33k0n a écrit :

Désolé de faire le boulet mais je n'ai pas d'options dans Run.
Mais bon, c'est pas grave, ça s'affiche bien dans une JFrame ;)
 
 
Tout s'affiche normalement, avec IE, Firefox, fenetre java...
Ce problème est RESOLU
 
En revanche, la question est maintenant de savoir si l'UTF-8 permet de bien coder l'alphabet Japonais.


Il permet de bien coder les caracteres japonais, que ce soit kanjis hiraganas ou katakanas, oui, pas de probleme

n°1591328
Magnum22
Posté le 25-07-2007 à 14:59:00  profilanswer
 

Bonjour,
 
Je suis confronté un peu au même problème.
Mais en lisant les différents messages du forum, je n'ai pas vu de réponse à mon problème.
Donc si quelqu'un peut m'aider ce serait vraiment sympa.
 
Voici le problème:
----------------
J'ai un site www.international-reversi.com (un peu de pub par la meme occasion :-) qui, comme son nom l'indique, permet de jouer à Reversi à travers une applet Java.
 
Sur ce site, j'ai des membres qui s'inscrivent en saisissant des caractères chinois pour leur nom.
 
Il n'y a pas de problème sur le site, si les caractères sont installés sur le poste client, l'affichage est correcte.
Mais sur mon applet, les caractères sont remplacés par des points d'intérogations.
 
Comment faire pour afficher les caractères chinois sur mon applet ?
 
Merci d'avance à ceux qui sauront m'aider à résoudre mon problème...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  PB encodage UTF-8 avec Japonais, Chinois, Arabe

 

Sujets relatifs
Quel encodage utiliser ?[dreamweaver] pb. d'encodage de mes fichiers
Encodage de sons sous javaProblème d'encodage
Problème avec l'encodage UTF-8 [de l'aide svp][SQL] [Résolu] Caractere chinois - Phpmyadmin
flux xml , encodage accentProblème encodage des caractères et xml_http_request
[Réglé] Problème avec ma fonction d'encodage de chaineProblème d'encodage de caractères Access MySQL
Plus de sujets relatifs à : PB encodage UTF-8 avec Japonais, Chinois, Arabe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR