Bonjour.
Dans le cadre de mon étude des sockets en Java j'ai repris les codes proposés par les tutoriels du site officiel de Java que j'ai un peu modifié pour m'essayer à certaines autres choses qui me tiennent personnellement à cœur dont l'internationalisation/localisation des applis et donc leur encodage.
Comme toujours je travailles sous Eclipse mais je génères mes jar exécutables avec un petit script (plus simple, plus rapide AMHA).
D'ailleurs si ça peut intéresser quelqu'un servez-vous (et adaptez) :
Enfin le problème c'est que l'appli fonctionne très bien quand elle est lancée depuis Eclipse mais quand je lance depuis les jar que j'ai généré mes kanji sont remplacés par des points d'interrogation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6@echo off cd bin jar cvfm SocketthrdServer.jar ../SVRMANIFEST images lang Server jar cvfm SocketClient.jar ../CLIMANIFEST Client move /Y *.jar ..
J'ai téléversé des images pour vous montrer le problème. A ne pas confondre avec les différences de codage entre telnet et le serveur (c'est un peu normal et ça n'est pas le problème même si je reste intéressé si quelqu'un aurait des infos dessus) je pose bien la question par rapport aux messages entre les clients et le serveur programmés en java.
Voilà pour les images.
http://yfrog.com/bhcapture20100706131050px
Descriptions des images (de gauche à droite) :
- Essai depuis Eclipse. Le popup (non visible sur l'image) indique UTF-8 et tout marche bien.
- Essai depuis les versions jar. Le popup (non visible...) indique cp1252 (Latin-1). Je prépares une petite phrase en japonais pour tester.
- Mes caractères sont affichés comme des points d'interrogation.
Notez que l'interface est elle bien affichées en japonais.
Je prépares une petite phrase en français avec car. spéciaux pour tester.- La locale du système étant la bonne, les caractères s'affichent.
J'ai aussi remarqué que quelqu'un avait le même comportement au niveau du jar (cf. ici)et j'ai utilisé la même méthode que lui pour obtenir les mêmes résultats (popup évoquée ci-dessus).
En gros pour une raison inconnue mon appli utilise UTF-8 depuis Eclipse mais utilise la locale du système soit Latin-1 depuis le jar exécutable. (Pas testé sous Linux mais je suppose qu'il ne devrait pas y avoir de problème vu que de mémoire j'utilise UTF-8).
J'ai parcouru aussi bien le forum que le net mais je n'ai pas réussi à trouver grand chose.
Je voudrais savoir s'il existe un moyen pour que l'appli dans le jar utilise UTF-8 quelque soit le système au même titre que sous Eclipse. Le mieux serait sans passer par une ligne de commande externe mais bien en double cliquant sur l'icône du jar.
Merci pour vos propositions, aide, solutions.
EDIT:
Comme je le pensais sous Linux l'appli fonctionne bien avec UTF-8.
Partager