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

Format d'échange (XML, JSON...) Java Discussion :

Caractères spéciaux.


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de if_zen
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 275
    Par défaut Caractères spéciaux.
    Bonjour,

    J'ai un soucis lorsque je veux récupérer un fichier XML contenant des caractères spéciaux qui ont été parsés. Ainsi, les caractères tels que < ou > passent, mais des caractères comme € ou encore è me génèrent une erreur.

    Voici l'erreur renvoyée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [Fatal Error] :4:487: The entity "egrave" was referenced, but not declared.
    [nov. 16 10:23:46] ERROR (METUtilities.java:84) - org.xml.sax.SAXParseException: The entity "egrave" was referenced, but not declared.

    La ligne 84 appelle une méthode contenant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (jeuCaracteres != null)
    				chaineXml = new String(chaineXml.getBytes(), jeuCaracteres);
    			javax.xml.parsers.DocumentBuilderFactory documentBuilderFactory = javax.xml.parsers.DocumentBuilderFactory.newInstance();
    			// Rajout 17.10.2006 : Permet la gestion des include en xml. (les deux lignes suivantes)
    			documentBuilderFactory.setXIncludeAware(true);
    			documentBuilderFactory.setNamespaceAware(true);
    			javax.xml.parsers.DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
    			org.w3c.dom.Document document = documentBuilder.parse(new java.io.ByteArrayInputStream(chaineXml.getBytes()));
    			return document.getDocumentElement();
    Avez vous une idée ? Problème de version de SAX ou de DOM ?

    Merci beaucoup.

  2. #2
    Membre éclairé Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Par défaut
    En XML seules 5 entités sont prédéfinies :< > ...
    Pour les autres, ils faut les déclarées dans ton fichiers XML comme entités (ou via un fichier externe) que tu traite ensuite via resolveEntiy()....

  3. #3
    Membre très actif
    Avatar de if_zen
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 275
    Par défaut
    Merci,

    et un doctype ça peut faire l'affaire ?

    Je ne connais pas du tout resolveEntity, je vais orienter mes recherches dans cette direction, merci.

    Sans vouloir abuser, si quelqu'un avait un petit exemple sous le clic, ça enjoliverait le thread :p

  4. #4
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Voila le mien
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    <!DOCTYPE xsl:stylesheet [
    	<!ENTITY nbsp " ">
    	<!ENTITY iexcl "¡">
    	<!ENTITY cent "¢">
    	<!ENTITY pound "£">
    	<!ENTITY curren "¤">
    	<!ENTITY yen "¥">
    	<!ENTITY brvbar "¦">
    	<!ENTITY sect "§">
    	<!ENTITY uml "¨">
    	<!ENTITY copy "©">
    	<!ENTITY ordf "ª">
    	<!ENTITY laquo "«">
    	<!ENTITY not "¬">
    	<!ENTITY shy "­">
    	<!ENTITY reg "®">
    	<!ENTITY macr "¯">
    	<!ENTITY deg "°">
    	<!ENTITY plusmn "±">
    	<!ENTITY sup2 "²">
    	<!ENTITY sup3 "³">
    	<!ENTITY acute "´">
    	<!ENTITY micro "µ">
    	<!ENTITY para "¶">
    	<!ENTITY middot "·">
    	<!ENTITY cedil "¸">
    	<!ENTITY sup1 "¹">
    	<!ENTITY ordm "º">
    	<!ENTITY raquo "»">
    	<!ENTITY frac14 "¼">
    	<!ENTITY frac12 "½">
    	<!ENTITY frac34 "¾">
    	<!ENTITY iquest "¿">
    	<!ENTITY Agrave "À">
    	<!ENTITY Aacute "Á">
    	<!ENTITY Acirc "Â">
    	<!ENTITY Atilde "Ã">
    	<!ENTITY Auml "Ä">
    	<!ENTITY Aring "Å">
    	<!ENTITY AElig "Æ">
    	<!ENTITY Ccedil "Ç">
    	<!ENTITY Egrave "È">
    	<!ENTITY Eacute "É">
    	<!ENTITY Ecirc "Ê">
    	<!ENTITY Euml "Ë">
    	<!ENTITY Igrave "Ì">
    	<!ENTITY Iacute "Í">
    	<!ENTITY Icirc "Î">
    	<!ENTITY Iuml "Ï">
    	<!ENTITY ETH "Ð">
    	<!ENTITY Ntilde "Ñ">
    	<!ENTITY Ograve "Ò">
    	<!ENTITY Oacute "Ó">
    	<!ENTITY Ocirc "Ô">
    	<!ENTITY Otilde "Õ">
    	<!ENTITY Ouml "Ö">
    	<!ENTITY times "×">
    	<!ENTITY Oslash "Ø">
    	<!ENTITY Ugrave "Ù">
    	<!ENTITY Uacute "Ú">
    	<!ENTITY Ucirc "Û">
    	<!ENTITY Uuml "Ü">
    	<!ENTITY Yacute "Ý">
    	<!ENTITY THORN "Þ">
    	<!ENTITY szlig "ß">
    	<!ENTITY agrave "à">
    	<!ENTITY aacute "á">
    	<!ENTITY acirc "â">
    	<!ENTITY atilde "ã">
    	<!ENTITY auml "ä">
    	<!ENTITY aring "å">
    	<!ENTITY aelig "æ">
    	<!ENTITY ccedil "ç">
    	<!ENTITY egrave "è">
    	<!ENTITY eacute "é">
    	<!ENTITY ecirc "ê">
    	<!ENTITY euml "ë">
    	<!ENTITY igrave "ì">
    	<!ENTITY iacute "í">
    	<!ENTITY icirc "î">
    	<!ENTITY iuml "ï">
    	<!ENTITY eth "ð">
    	<!ENTITY ntilde "ñ">
    	<!ENTITY ograve "ò">
    	<!ENTITY oacute "ó">
    	<!ENTITY ocirc "ô">
    	<!ENTITY otilde "õ">
    	<!ENTITY ouml "ö">
    	<!ENTITY divide "÷">
    	<!ENTITY oslash "ø">
    	<!ENTITY ugrave "ù">
    	<!ENTITY uacute "ú">
    	<!ENTITY ucirc "û">
    	<!ENTITY uuml "ü">
    	<!ENTITY yacute "ý">
    	<!ENTITY thorn "þ">
    	<!ENTITY yuml "ÿ">
    ]>

  5. #5
    Membre très actif
    Avatar de if_zen
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 275
    Par défaut
    Merci beaucoup,

    J'espère que ça en aidera d'autres aussi.

    Pour ma part j'ai contourné le problème en parsant deux fois les caractères spéciaux lors de la création du fichier XML. Il sera alors parsé deux autres fois dans l'autre sens à la relecture (via une classe java open-source htmlentities disponible sur sourceforge).

    Merci infiniment.

    Le XML c'est bien mais que quand on est américain...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut
    Bonjour,

    Est-ce que vous connaissez un fonction qui convertit les caractères dit spéciaux en chiffre ?

    <br />Exemple : "François" === donnerait "Fran<PRE>ç</PRE>ois"
    <br />

    Merci d'avance, çà m'arrangerait beaucoup, car j'ai la flemme de faire un "replaceAll" sur tout les caractères spéciaux

Discussions similaires

  1. caractères spéciaux
    Par mat10000 dans le forum Flash
    Réponses: 16
    Dernier message: 23/10/2003, 13h22
  2. Où trouver la liste des caractères spéciaux?
    Par gamez dans le forum Langage
    Réponses: 3
    Dernier message: 19/08/2003, 17h54
  3. Transformation XSL et caractères spéciaux
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 4
    Dernier message: 28/04/2003, 10h38
  4. [Sybase] filtre sur caractères spéciaux
    Par montelieri dans le forum Sybase
    Réponses: 4
    Dernier message: 07/04/2003, 16h49
  5. Traiter les caractères spéciaux
    Par ricola dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2003, 09h23

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