IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Encoding, Japonais et JList


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Par défaut Encoding, Japonais et JList
    Bonjours à tous.

    Voilà, je développe une appli qui comunique avec un serveur apache japonais qui bien sur me répond dans sa langue (hiragana et katakana).

    J'affiche dans un premier temps une liste de mots qu'il me renvoie dans un JList qui me permet de selectionner un item (en japonais) dont je vais renvoyer le nom au server (avec les classes URL et URLConnection)

    Pour récupérer les données, j'indique au StreamReader que c'est de l'UTF-8 : InputStreamReader reader = new InputStreamReader(conn.getInputStream(),"UTF-8");

    Et le tout s'affiche sans problème dans la liste.

    Mais lorsque je renvois au serveur le nom de l'item selectionné dans la JList ca ne fonctionne plus.
    Si je ne touche pas à l'encodage, le serveur ne comprend pas ma requete.
    Si je reconstruit le String en lui indiquant le codage UTF-8 :
    new String(item.getBytes("UTF-8"),encoding);
    (item = String, encoding = nom du Charset par defaut de l'OS (du moins je pense ...))
    - Dans le cas d'un Windows Japonais (encoding MS932) ca ne marche pas du tout
    - Dans celui d'un Windows Anglais (windows-1252) ca marche ... sauf quand il y a le signe ソ et un ou 2 autres dans le nom de l'item ... (remplacé par un ?) ce qui est franchement bizarre.
    Je suppose k'il s'agit d'un encodage legerement different ou autre chose.

    J'essaye un peu toutes les possibilités mais je ne trouve pas le bon encodage.
    En quoi sont encodé les items de la liste?
    Est ce que je suis assez clair?
    #####

    merci d'avance

  2. #2
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Par défaut
    Bon, apres des heures de recherche, je me demande si ca ne viendrait pas de l UTF8 modifié de java ...

    exemple
    Je vois ca dans le JList :
    PUチュウガタ

    Avec le Windows anglais (encoding : windows-1252) je vois ca
    PU�ュウガタ

    Et le japonais (windows 31-j)
    PU?????

    c'est un probleme pour une appli que je voudrais portable...

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il faut peut-être une Font qui supporte les caractère japonais...

    a++

  4. #4
    Membre éprouvé Avatar de Actarus78
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 87
    Par défaut
    From google : Japonais Java
    Toutes les distributions actuelles des grands systèmes d'exploitation (Mac OS, Windows, Linux) incluent des polices de caractères japonaises, souvent Watanabe mincho et Wadalab gothic dans le cas de Linux. De nombreuses polices gratuites pour les autres langues sont disponibles sur Internet et facilement téléchargeables.
    Théoriquement, la bonne approche pour un applet Java est donc de tester les fontes du système les unes après les autres à la recherche d'une fonte qui puisse afficher les caractères demandés. Mais dans la pratique, comme le nombre de fontes peut être important et que certains ordinateurs peuvent être anciens et peu puissants, il est pour le moment préférable de simplifier la recherche et d'aller droit au but, en appelant directement la fonte par son nom, Watanabe mincho par exemple, s'il est probable qu'elle est présente sur le système.

  5. #5
    Membre éprouvé Avatar de White Rabbit
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 122
    Par défaut
    Pour lire les caractères japonais dans internet explorer, microsoft met à disposition un "pack de fonts".

    Je sais plus le lien mais j'ai mis le pack sur mon espace web

    Sous Firefox, en laissant l'encodage iso-8859-1, les caractères japonais s'affichent nickel. Ce qui évite de devoir changer l'encodage à chaque fois.

    En tout cas, quand des caratères exotiques ne s'affichent pas, c'est toujours les fonts qui ne sont pas installés sur le système.

    A noter que le pack installe les caractères d'autre langues : hebreu, russe(cyrillique? confirmez-vous?) et les autres langues asiatiques genre thai ou coréen.

  6. #6
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Par défaut
    Ha ok ... j ai pas été assez clair ...

    je n'ai aucun probleme d'interface graphique ou de font.

    Oublions la Jlist ...

    Un serveur Japonais m'envoie une liste de mots en Japonais séparé par un séparateur (...). Moi, je récupere le flux, je dis que c'est de l'UTF-8 je le découpe avec la classe Scanner pour stoquer chacun des mots de la liste dans un vecteur (et il se trouve ke si je j'affiche ce Vector dans une JList, ca marche sans problème (pas de ? ou autre signe qui n a rien a faire la)

    Mais lorsque que je récupere un mot de ce vecteur pour le communiquer au serveur sous forme d'url :
    http://leserveur.jp/requete.php?item=lemotjaponais

    La il y a un probleme.Selon le signe cela peut fonctionner ou non
    Et lorsque que je verifie l'addresse générée dans un console, je me rend compte que cela ne marche pas pour certains signes et qu'en plus, c'est en fonction du systeme d'exploitation.

    Je ne pense pas que ce soit un problem de font et encore moins d'internet explorer.

    Et ce n'est pas une applet.

    J'ai de plus lancé un scripte qui teste tous les charset de java et aucun ne convient.

    Peut être suis-je plus clair
    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    URL url = new URL(address);
    URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
     
    InputStreamReader reader = new InputStreamReader(conn.getInputStream(),"UTF-8");
     
    Scanner sc1 = new Scanner(reader);
    sc1.useDelimiter("|");
    String answer = sc1.next();
     
    Vector list ... ;
     
    if(SessionData.errorManager.checkServerError(answer)){
    	Scanner sc2 = new Scanner(answer).useDelimiter("-");
    	String token;
     
    	while(sc2.hasNext()){
    		token = sc2.next();
    		list.add(token);
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    id2 = list.get(0);
    id = new String(id2.getBytes("UTF-8"));
    address = url+"?id="+id;
    System.out.println(address);
     
    URL url = new URL(address);
    Ca c est plus ou moins le code dans ses grandes lignes

    Quelqu un a il une solution meme pas forcement tres propre?



    edit : Comment que ca se fait t'y donc que ca s'affiche correctement dans les composants SWING et que pourtant je n'arrive pas a manipuler les carateres

Discussions similaires

  1. [encoding] symbole €
    Par phoebe dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 11/05/2004, 16h57
  2. Réponses: 4
    Dernier message: 07/05/2004, 21h15
  3. [Jlist] Clic sur jlist
    Par bibx dans le forum Composants
    Réponses: 6
    Dernier message: 07/05/2004, 10h19
  4. [JSP] encoder et décoder les param d'une URL ?
    Par iubito dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 22/12/2003, 11h34
  5. JList en line wrapping
    Par dreydrey dans le forum Composants
    Réponses: 3
    Dernier message: 16/12/2003, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo