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

Applets Java Discussion :

Supprimer ou interpréter caractères unicode


Sujet :

Applets Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Par défaut Supprimer ou interpréter caractères unicode
    Bonjour,

    Je dispose d'un applet dont le but est de se connecter à un serveur et de relayer le flux (du texte). Mais il arrive à ce serveur d'envoyer des caractères unicode m'empêchant de parser la réponse. Ce caractère en question s'appelle White Smiling Face code \u263A.

    Le serveur répond quelque chose comme :
    :☺ACTION UneAction☺
    Le code :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(lineSplit[3].startsWith(":"?"ACTION")) {

    Le caractere se trouvant à la place du "?". J'ai sillionner pas mal de fonction et bidouillage, mais aucun ne semble combler mon besoin. Comment rendre valide cette condition en traitant ou supprimant ce caractere de la chaine ?

    Je précise que je n'utilise pas java.awt dans ce projet.

    D'avance, Merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tout simplement


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(lineSplit[3].startsWith(":\u263aACTION"))

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Par défaut
    Merci pour votre réponse.

    Malheureusement, j'ai déjà testé cette syntaxe. et le programme ne rentre pas dans la condition. J'ai pourtant lu que java est censé comprendre les caractères Unicode. Est-ce que je me suis trompé de caractère ? Peut être.

    En fait, lorsque que je println() la ligne contenant ce caractère, j'ai dans la console java un espace blanc, dans la console crosoft le White smiling face. J'suis parti du principe que du fait de la différence entre les deux consoles, il ne s'agissait pas d'un caractères normal.

    Ce caractère n'a pas de code ASCII. J'en ai donc déduit que c'était unicode. Me suis-je trompé de raisonnement ? Que faire pour me débarrasser de ce caractère ?

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    par définition, tout caractère est unicode! Votre serveur, il envoie son texte dans quel encodage? Utilisez vous bien le bon encodage pour la lecture par rapport à celui utilisé par le serveur?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 29
    Par défaut
    Le serveur utilise me semble-t-il l'encodage UTF-8. Pour ce qui est de ce que j'utilise, euh

    Je ne savais même pas que l'ont pouvait modifier l'encodage utilisé, je n'ai pas vu de chose dans ce sens dans les documents que j'ai pu lire, Ou bien, je n'y ai pas prêté attention. De ce fait, je pense utilisé l'encodage par défaut de java.

    Pensez-vous que je devrais utiliser quelque chose comme :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    System.setProperties( "file.encoding", "UTF-8" );

    Edit : Je viens d'essayer ceci :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private String charset = "UTF-8";
    sr = new BufferedReader(
                        new InputStreamReader(socket.getInputStream(), charset));

    Modification egalement effectué sur le Writer, mais ce caractere s'affiche toujours de la même maniere sans être intercepté.

    Ces lignes reçu, sont transmise à javascript ensuite. De ce côté, les caractères n'apparaissent pas... Ni de Smiling face, ni d'espacement, comme s'il n'existaient pas.

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    C'est une bonne pratique que de systématiquement préciser quel encodage vous voulez utiliser quand vous travaillez avec des Reader en java. Tous les constructeurs associés au reader prenent en paramètre l'encodage à utiliser. Suffit de regarder la javadoc

    http://javasearch.developpez.com/j2s...lang.String%29

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JDOM] caractère unicode de fin de ligne
    Par iceman dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 31/03/2009, 03h15
  2. Réponses: 4
    Dernier message: 14/10/2005, 09h15
  3. Supprimer le premier caractère d'une chaine de caractères
    Par Droïde Système7 dans le forum Langage
    Réponses: 2
    Dernier message: 30/09/2005, 11h13
  4. Réponses: 4
    Dernier message: 24/08/2005, 18h40
  5. [CR8.5] caractères unicode
    Par Milou79 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 03/09/2004, 11h42

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