[JAVA] caractères accentué différents selon OS

caractères accentué différents selon OS [JAVA] - Java - Programmation

Marsh Posté le 20-04-2005 à 11:33:12    

Bonjour,
 
J'ai un jeu an Applet qui contient un module de chat (fait en Swing).
Ce module fonctionne bien sur des plateformes windows, mais j'ai un pote qui possède une distrib ubuntu (on a pas idée d'avoir une distrib pareil ! ;) ), linux donc, et kan il écrit des caractères accentués dans son module de chat, ben nous on recoit des carrés. Par contre, lui il recoit bien les lettres accentuées que nous on écrit.
 
La transmition des phrases de chat se fait d'une manière très simple : le String entrée dans le module de chat est envoyé et à l'arrivé, ce String est affiché dans un JTextArea.
 
Je vais essayer ce soir de jouer avec ma fédora voir si rencontre le même problème.
 
A part "t'as qu'à lui dire d'untiliser une distrib digne de ce nom ;) ", Quelqu'un a déjà eu ce genre de problème ?
 
Merci de vos aides.

Reply

Marsh Posté le 20-04-2005 à 11:33:12   

Reply

Marsh Posté le 20-04-2005 à 15:16:56    

bon, ben :bounce:

Reply

Marsh Posté le 20-04-2005 à 18:30:28    

C'est normal que tu est ce problème car les caractères ne sont pas codés de la même manière sous Windows et sous Linux... L'interprétation marche dans un sens (Windows->Linux) mais pas dans l'autre...  
Pour ébaucher une solution, je dirais qu'il faudrait intercepter les caractères spéciaux et les remplacer ou non suivant l'OS sur lequel tourne l'applet... Je sais qu'il existe un moyen de le connaître. Si mes souvenirs sont exacts, ça serait System.Property("OS" ) qui retourne "Windows" ou autre selon le cas...
 
Bon courage, c'est pas évident de faire cohabiter Linux et Windows!

Reply

Marsh Posté le 20-04-2005 à 19:30:51    

Arwenalia a écrit :

C'est normal que tu est ce problème car les caractères ne sont pas codés de la même manière sous Windows et sous Linux... L'interprétation marche dans un sens (Windows->Linux) mais pas dans l'autre...  
Pour ébaucher une solution, je dirais qu'il faudrait intercepter les caractères spéciaux et les remplacer ou non suivant l'OS sur lequel tourne l'applet... Je sais qu'il existe un moyen de le connaître. Si mes souvenirs sont exacts, ça serait System.Property("OS" ) qui retourne "Windows" ou autre selon le cas...
 
Bon courage, c'est pas évident de faire cohabiter Linux et Windows!


 
Mon bel idéal de "Java c'est parfait, multi plateforme..." s'éffrite un petit peu ! Fait chi** ces foutu caractères accentués ! Y auraient pu prévoir ca quand même ! C'est pas pasqu'en anglais ya pas d'accent que les autres pays c pareil !
 
Bon, ben merci de ton aide.


Message édité par tuxbleu le 20-04-2005 à 19:31:56
Reply

Marsh Posté le 20-04-2005 à 20:24:16    

.. parce que tu passes par l'encodage par défaut pour transmettre tes chaines de caractères.. l'encodage par défaut étant celui de la plateforme... la faute n'est donc pas à mettre sur le dos de java mais bien le tien. Tu peux spécifier l'encodage à utiliser lors de la transmission de tes données et/ou utiliser des Readers/Writers, plus adapté que les Stream que je te soupçonne d'utiliser.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 20-04-2005 à 22:50:08    

eu ben c un JtextField, je récupèer avec getText() :
 
private JTextField chat_in;
 
 
 /**
  * Action 'entrée' sur champs text du chat.
  */
 private ActionListener act_in = new ActionListener() {
  public void actionPerformed(ActionEvent evt) {
   moncd.demandeEnvoieMesgChat(chat_in.getText(), numjoueur);
   chat_in.setText("" );
  }
 };

 
et demandeEnvoieMesgChat prend en parametre un String, et un int

Reply

Marsh Posté le 21-04-2005 à 15:08:45    

:bounce:

Reply

Marsh Posté le 22-04-2005 à 15:45:02    

the real moins moins a écrit :

.. parce que tu passes par l'encodage par défaut pour transmettre tes chaines de caractères.. l'encodage par défaut étant celui de la plateforme... la faute n'est donc pas à mettre sur le dos de java mais bien le tien. Tu peux spécifier l'encodage à utiliser lors de la transmission de tes données et/ou utiliser des Readers/Writers, plus adapté que les Stream que je te soupçonne d'utiliser.


 
Tu peux éclairer un peu plus ma lanterne ?
 
merci

Reply

Marsh Posté le 12-05-2005 à 08:40:44    

ça doit être un truc du genre:
http://java.developpez.com/faq/jav [...] etFichiers

Reply

Marsh Posté le 12-05-2005 à 11:22:35    

Mais Java n'est pas censé encoder en unicode par défaut ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed