encodage caractères spéciaux XML - Java - Programmation
Marsh Posté le 18-12-2007 à 14:23:08
liouan a écrit : Bonjour, |
Marsh Posté le 18-12-2007 à 14:25:23
liouan a écrit : Bonjour, |
mettre en début de fichier xml
<?xml version="1.0" encoding="ISO-8859-1"?>
au lieu de limiter à UTF-8
Marsh Posté le 18-12-2007 à 14:26:31
barny a écrit : |
Hein ? "Se limiter à l'utf-8" ? T'as fumé quoi ?
Marsh Posté le 18-12-2007 à 14:31:25
Si c'est toi qui génères ce fichier, modifie le code de façon à produire un document correct. Si ce n'est pas le cas, renvoie le fichier à son propriétaire/générateur en disant qu'il n'est pas valide. Mais dans aucun cas tu ne dois te taper la conversion à la main, c'est le boulot de celui qui construit le fichier.
EDIT : j'avais pas bien lu le message de départ
Marsh Posté le 26-12-2007 à 11:25:25
La réponse bateau : utiliser iso-8859-15 au lieu de iso-8859-1 (ce sont grosso modo les mêmes tables de caractères, mais la 15 possède le caractère €).
La réponse complète : 2 solutions possibles :
- faire en sorte que le flux en écriture, dans lequel tu écris tes chaînes, soit ouvert avec l'encodage UTF-8 au lieu de l'encodage par défaut de la machine (c'est sans doute la solution la plus sure).
- se moquer de l'encodage, et, au moment de les écrire dans le fichier XML, transformer dans chaque chaîne chaque caractère dont le code est supérieur ou égal à 128 en son entité XML équivalente (&#aaa; avec le code du caractère en décimal ou ஻ avec son code en hexadécimal) -- (ça oblige à modifier le code => attention aux bugs)
Marsh Posté le 18-12-2007 à 05:48:33
Bonjour,
j'ai un fichier XML qui a cette tête:
<?xml version="1.0" encoding="UTF-8"?>
<menu>
<produit dir="dossier1">le nom du produit avec éventuellement des caractères spéciaux</produits>
<produit dir="dossier2">le nom d'un autre produit qui contient aussi des caractères spéciaux</produits>
</menu>
j'administre un fichier de ce type grace à une petite interface faite en GWT
le problème, c'est que pour mes noms de produits, si je les mets avec des caractères spéciaux tel que c'est pour l'instant, mon fichier XML n'est pas lisible correctement par mes classes, je me prends une sale exception qui me dit que j'ai des caractères invalides (forcément).
j'ai donc deux questions:
y a t-il une classe toute faite qui possède la fonction sympa qui me prendrait en entrée une chaine comme "entrée" et me recracherait "entr&233e"?
y'a t-il possibilité de forcer ma classe à manger ce fichier XML? (je précise que pour lire ce fichier XML, j'utilise SAXBuilder)