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

JSF Java Discussion :

Facelets et UTF8


Sujet :

JSF Java

  1. #1
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut Facelets et UTF8
    Bonjour,

    J'utilise facelets pour la gestion des templates dans mon application... Mais dès qu'il y a un accent dans ma page, j'obtiens l'erreur suivante :
    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
    23
    24
    25
    26
    27
    28
    29
    30
     
    java.io.UTFDataFormatException: Invalid byte 2 of 3-byte UTF-8 sequence.
    	org.apache.xerces.impl.io.UTF8Reader.invalidByte(Unknown Source)
    	org.apache.xerces.impl.io.UTF8Reader.read(Unknown Source)
    	org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
    	org.apache.xerces.impl.XMLEntityScanner.scanLiteral(Unknown Source)
    	org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source)
    	org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanAttribute(Unknown Source)
    	org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
    	org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    	org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    	org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    	org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    	org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    	org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    	javax.xml.parsers.SAXParser.parse(Unknown Source)
    	javax.xml.parsers.SAXParser.parse(Unknown Source)
    	com.sun.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:232)
    	com.sun.facelets.compiler.Compiler.compile(Compiler.java:104)
    	com.sun.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:192)
    	com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:141)
    	com.sun.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:93)
    	com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:503)
    	com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:553)
    	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
    	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
    	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
    	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:100)
    	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)
    On est obligé de choisir entre facelet et les accents ???? Ou bien il y a moyen de concillier les deux ??? (ce qui m'arrangerait beaucoup )

    Merci d'avance !

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    Non, il est parfaitement possible d'utiliser et facelets et les accents. En fait, le problème ne vient pas des facelets mais d'une question d'encodage.

    En gros, tu dois certainement procéder ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:outputText value="élève" />
    Ce qui te génère l'exception en question. Les caractères accentiés ainsi que d'autres caractères spéciaux (<, >, etc.) doivent êre encodés comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:outputText value="&eacute;l&egrave;ve" />
    Le mieux serait de passer par un éditeur WYSIWYG comme Dreamweaver par exemple qui dans le mode "Design" encode tout ce que tu tapes dans le bon format, récupérable ensuite dans le mode code.

    Quelques codes utiles :
    é &eacute;
    è &egrave;
    à &agrave;
    ç &ccedil;
    < &lt;
    > &gt;

    Bonne chance.

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    bonjour,
    voila j'aimerai ajouté une question sur ce poste ,
    et si la valeur on la recupere d'une base de donné , exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:outputText value="Bean.rue" />
    et on des fois les rue comporte des accents, est ce que ya une methode d'encodage , pour l'utiliser dans le geter des rue

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 6
    Par défaut
    ajoute à tes pages la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    devrait résoudre ton problème de caractères spéciaux

  5. #5
    Membre éclairé Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Par défaut
    Merci de vos réponses !

    Je connaissai les caractères du genre "&eacute;" je les ai test mais même si ca ne fait pas planter la page, le caractère ne s'affiche pas a l'écran....

    Je ne peut pas utiliser l'encodage ISO-8859-1, mon appli doit être traduit ds plusieurs langue dont le grec par exemple.... UTF8 oblige !

    J'ai résolu mon problème en enregistrant ma page au format UTF8, maintenant les accent passe telquel !!!

    Merci encore !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 20
    Par défaut
    enregistrer le fichier en UTF-8 puis vérifier que les caractères accentués sont bien reconnus comme tels

    pour ma part, j'ai transformé mes fichiers de ISO-8859-1 en UTF-8 mais j'avais toujours
    java.io.UTFDataFormatException: Invalid byte 2 of 3-byte UTF-8 sequence car les caractères accentués avaient été remplacés par des caractères très bizarres (en passant en UTF-8)

    cet erreur vient parce que les caractères bizarres ne sont pas reconnus

    après avoir remis les accents et réenregistré les fichiers, c'était bon

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

Discussions similaires

  1. [FLASH MX2004 PRO] Décodage de l'utf8
    Par Typhlosion dans le forum Flash
    Réponses: 2
    Dernier message: 23/04/2005, 18h54
  2. Migration Oracle 8i WE8DEC => Oracle 9i UTF8
    Par stawen dans le forum Oracle
    Réponses: 3
    Dernier message: 06/01/2005, 10h44
  3. Réponses: 5
    Dernier message: 19/11/2004, 19h16
  4. Convertir une chaine UTF8 en ISO-8859-1
    Par eods dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 26/08/2004, 16h57
  5. Réponses: 2
    Dernier message: 23/06/2004, 16h06

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