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

AWT/Swing Java Discussion :

conversion d'une string en html


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Points : 23
    Points
    23
    Par défaut conversion d'une string en html
    bonjour tout le monde,

    voici mon problème :

    j'utilise un Jeditorpane pour afficher des selections faites par l'utilisateur et pour pouvoir rendre certaines parties du textes selectionables ( grace a un htmleditorkit; je crée des liens pour chaque partie à rendre selectionable).

    l'ennui c'est que j'ai besoin de travailler sur la longueur des chaînes contenues dans mon jeditorpane, et que quand je rentre une chaine de ce type :

    <a href="0">PorteP01.TYPECMAN égal "test"</a>

    lorsque j'utilise la méthode gettext() de mon jeditorpane je récupère ceci :


    <a href="0">PorteP01.TYPECMAN &#233;gal &quot;test&quot;</a>.


    Apparement c'est le codage utilisé par html, mais comment puis je récupérer ma chaine d'origine ??? ou quelles sont les méthodes de gestion de ces différents codages ?

    merci d'avance pour vos réponses, mon boulot n'avance plus du tout la

    bonne journée

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 80
    Points : 73
    Points
    73
    Par défaut
    Je connais pas très bien les JEditorPane mais tu peux tester deux trucs :
    • Ajouter
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
      au début de ton code HTML. Ca permet de gérer tous les caractères français (é, è, à, ç, ù...). Du coup, tu devrais recevoir directement la lettre, sans le codage &...;
    • Ou, si tu veux uniquement calculer la longueur de la chaîne, tu fais des tests et à chaque fois que tu tombes sur un &, tu cherches le prochain ; et tu comptes l'ensemble comme un seul caractère. Un peu fastidieux mais ça devrait marcher (en ralentissant le tout cependant...)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    bon alors la deuxième solution pourrait fonctionner mais c'est vraiment en dernier recours, parce que bon c'est quand même relativement lourd.

    j'ai testé la première et apparement cela ne fonctionne pas.

    voila ce que j'obtiens après avoir fait un gettext()

    <html>
    <head>

    </head>
    <body>
    &gt;<a href="0" content="text/html; charset=iso-8859-15" http-equiv="Content-Type">PorteP01.TYPECMAN
    &#233;gal &quot;test&quot;</a>
    </body>
    </html>


    sachant que j'ai mis dans mon jeditorpane la ligne que tu m'as donné précédemment, + ceci :

    <a href="0">PorteP01.TYPECMAN égal "test"</a>

    on peut donc voir que la ligne que tu m'as donné a été prise en compte, et que surement lorsque j'essaierai de récuperer l'url de ce lien j'aurais les é , etc.

    Mais cela ne résouds pas mon problème de gettext(). Peut-être faut-il faire quelque chose avec le content-type du htmlEditorKit ? (lorsque j'imprime le content-type cela me retourne "text/html").


    Merci pour ta réponse, et merci de m'en fournir d'autres si vous arrivez à situer mon problème ( je ne comprends pas grand chose aux swings pour le moment )

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 80
    Points : 73
    Points
    73
    Par défaut
    J'ai oublié de préciser que c'est entre <head> et </head> qu'il faut mettre <meta ... />

    Autrement, essaie de mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "text/html; charset=iso-8859-15"
    dans le content-type. Je promets rien, j'ai jamais essayé.

    Tiens nous au courant.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    bon bin non ca ne fonctionne pas ^^ la j'essai de tripatouiller avec le parser d'htmleditorkit mais c'est pas très concluant. ( j'arrive pas a mettre la meta entre les balises <head> :S )

    bon donc si quelqu'un sait comment cela fonctionne, je suis tout ouïe.


    (merci de ton aide julien)

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 80
    Points : 73
    Points
    73
    Par défaut
    D'après la javadoc de htmlEditorKit, il doit y avoir une méthode getContentType() qui te donne tous les content-type supportés par le kit. Ca renvoit un String. Fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(getContentType());
    et donne nous le résultat.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    justement c'est quand je faisais ca que ca me retournais "text/html". apparement ca ne renvoit pas tous les content type supportés par leditorkit mais celui qui est utilisé.

  8. #8
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 80
    Points : 73
    Points
    73
    Par défaut
    Autrement dans la déclaration de l'objet InputStreamReader, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    url = new URL ("..." );
    InputStream in = url.openStream();
    InputStreamReader reader = new InputStreamReader(in,"ISO-8859-15");

  9. #9
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 80
    Points : 73
    Points
    73
    Par défaut
    et si ça marche toujours pas, essaie avec ISO-8859-1 au lieu de ISO-8859-15

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    en fait je n'utilise pas d'inputStreamReader, j'ai juste mis un htmlEditorKit sur mon jeditorpane, et j'utilise la méthode de base ( settext() ) pour y afficher des Strings contenant des balises.

    par exemple ce genre de string :

    <a href="0">PorteP01.TYPECMAN égal "test"</a>.


    Mais cela me semble un peu "barbare" comme solution, et surement pas très académique. mais comme je ne sais pas du tout comment on manipule ce genre d'objet, je suis un peu dans l'impasse ...

    ( jvais faire quelques tests sur ce que tu viens de me dire julien, mais je ne vois pas du tout ce qu'est un inputStreamReader ).

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    bon bah c'est bon jsuis aller voir mon maitre de stage et il m'a filé une classe qu'il a faite, qui converti une chaine html héhé bonne zournée et encore merci

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

Discussions similaires

  1. Conversion d'une string en hexadécimal
    Par petitcoucou31 dans le forum Langage
    Réponses: 5
    Dernier message: 24/04/2008, 11h36
  2. conversion d'une string en char
    Par vulkanosaure dans le forum C++
    Réponses: 12
    Dernier message: 02/11/2007, 19h55
  3. Encoder une String en HTML dans une classe
    Par joKED dans le forum ASP.NET
    Réponses: 1
    Dernier message: 24/07/2007, 16h33
  4. Conversion Caractères Spéciaux String -> Caractères HTML
    Par JujuDorange dans le forum Documents
    Réponses: 1
    Dernier message: 21/10/2006, 12h11
  5. [string->HTML] Conversion d'une chaine en HTML
    Par salome dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 24/07/2005, 16h27

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