Jeu de caractères pour sauver/relire le flux XML

Bug #353962 reported by Benjamin Gandon
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
AnalyseSI
Status tracked in Trunk
Trunk
Fix Released
Undecided
Bruno Dabo

Bug Description

A l'ouverture d'un fichier ASI, la méthode org.analyse.core.save.FiltreASI.run() décode le flux XML à l'aide d'un Reader qui est transmis à com.microstar.xml.XmlParser.parse().

La responsabilité de savoir le bon jeu de caractères à utiliser pour décoder le fichier repose donc sur le Reader.

Or à la création de l'InputStreamReader, aucun jeu de caractères n'est précisé, donc le Reader créé utilise le jeu de caractères par défaut de la plateforme Java.

Chez moi, ce charset par défaut était ISO-8859-1, mais en lançant l'application depuis Eclipse, il est soudain devenu autre (sans doute UTF-8), et donc les accents contenus dans mes fichiers ASI ne s'affichaient soudain plus correctement.

L'idéal serait de ne pas dépendre du jeu de caractères par défaut de la plateforme Java utilisée. Donc par exemple de préciser à InputStreamReader() qu'on travaille toujours avec ISO-8859-1.

Benjamin Gandon (benje)
summary: - Charset pour relire le flux XML sauvegardé
+ Jeu de caractères pour relire le flux XML sauvegardé
summary: - Jeu de caractères pour relire le flux XML sauvegardé
+ Jeu de caractères pour sauver/relire le flux XML
Revision history for this message
Bruno Dabo (bruno.dabo) wrote :

Bien vu !
Mais attention au fait que certains préfèreront sans doute le charset UTF-8.
Honneur à celui qui a vu le bug au premier et faisons en sorte que cette préférence soit "facilement" modifiable dans le futur

Revision history for this message
Benjamin Gandon (benje) wrote :

Oui, et UTF-8 serait même un meilleur choix. Je me suis juste dit que c'était plus simple (et plus compatible) de conserver l'ISO-8859-1.

Mais, les choses ne sont peut-être pas si simples. Par exemple, sur une plateforme réglée en UTF-8, forcer l'ISO-8859-1 produira une incompatibilité de format de fichier.

Pour s'affranchir de ça, il faudrait préciser le jeu de caractères dans l'XML avec <?xml version="1.0" encoding="UTF-8"?> et fournir à XmlParser.parse() un InputStream au lieu d'un Reader. J'ai vu que le parser est capable de trouver tout seul le jeu de caractère utilisé dans la balise <?xml?> donc ça devrait marcher.

A noter que le parser ne gère que l'UTF-8 et l'ISO-8859-1. Pour une plateforme qui aurait enregistré des fichiers en ISO-8859-X avec X>1 ça pourrait poser problème. Mais on peut espérer n'avoir encore que des utilisateurs francophones et assez peu de slaves :-)

Revision history for this message
Bruno Dabo (bruno.dabo) wrote : Re: [Bug 353962] Re: Jeu de caractères pour sauver/relire le flux XML

Le multi-langue est prévu dans la release 0.7
On suit tes recommandations sur la 0.6 ( c'est ça le monde libre )
D'ici là on "réfléchira" tous ensemble sur la mise en oeuvre du multi-langue dans AnalyseSI.

------Message d'origine------
De: Benjamin Gandon
Expéditeur: <email address hidden>
À: Bruno Dabo
Répondre à: Bug 353962
Envoyé: 3 avr 2009 09:45
Objet: [Bug 353962] Re: Jeu de caractères pour sauver/relire le flux XML

Oui, et UTF-8 serait même un meilleur choix. Je me suis juste dit que
c'était plus simple (et plus compatible) de conserver l'ISO-8859-1.

Mais, les choses ne sont peut-être pas si simples. Par exemple, sur une
plateforme réglée en UTF-8, forcer l'ISO-8859-1 produira une
incompatibilité de format de fichier.

Pour s'affranchir de ça, il faudrait préciser le jeu de caractères dans
l'XML avec <?xml version="1.0" encoding="UTF-8"?> et fournir à
XmlParser.parse() un InputStream au lieu d'un Reader. J'ai vu que le
parser est capable de trouver tout seul le jeu de caractère utilisé dans
la balise <?xml?> donc ça devrait marcher.

A noter que le parser ne gère que l'UTF-8 et l'ISO-8859-1. Pour une
plateforme qui aurait enregistré des fichiers en ISO-8859-X avec X>1 ça
pourrait poser problème. Mais on peut espérer n'avoir encore que des
utilisateurs francophones et assez peu de slaves :-)

--
Jeu de caractères pour sauver/relire le flux XML
https://bugs.launchpad.net/bugs/353962
You received this bug notification because you are the registrant for
AnalyseSI.

Revision history for this message
Benjamin Gandon (benje) wrote :

ah, mince, j'ai déjà un truc qui marche.
bon, je vais m'arranger pour mettre ça dans une autre branche, à destination de la version 0.7

Revision history for this message
Bruno Dabo (bruno.dabo) wrote :

La modif actuelle sera prise dans la 0.635 ( qui sera livrée dans 15j maxi )
------Message d'origine------
De: Benjamin Gandon
Expéditeur: <email address hidden>
À: Bruno Dabo
Répondre à: Bug 353962
Envoyé: 3 avr 2009 15:06
Objet: [Bug 353962] Re: Jeu de caractères pour sauver/relire le flux XML

ah, mince, j'ai déjà un truc qui marche.
bon, je vais m'arranger pour mettre ça dans une autre branche, à destination de la version 0.7

--
Jeu de caractères pour sauver/relire le flux XML
https://bugs.launchpad.net/bugs/353962
You received this bug notification because you are the registrant for
AnalyseSI.

Revision history for this message
Benjamin Gandon (benje) wrote :

ok merci

Revision history for this message
Bruno Dabo (bruno.dabo) wrote :

modifications apportées -- voir la release 36

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.