Forums : Template et RDF

Aller à la discussion :  Plus récente Plus ancienne

# [Resolu - utile pour d'autres personnes] problème d'encodage depuis un RDF en chaine de caractere

Envoyé par : guyzmo

Date : 26/07/2006 17:22

Bonjour,

j'ai créé un composant XPCOM ( en Javascript) utilisant l'interface des RDF. Lors de son initialisation il télécharge un graph RDF depuis un fichier distant.

Comme les XML-RDF ne sont pas modifiables, je suis obligé de me créer une source mémoire (mon composant est en fait une facade sur cet objet) qui est remplie à partir du RDF précédement chargé. Ne sachant pas comment faire pour ajouter directement les resources du RDF-XML vers le RDF-mémoire, j'ai utilsé une facon plutot sale : conversion du RDF en chaine et création d'une source interne depuis la chaine ...

  • Le RDF généré depuis le serveur est en UTF-8. Il s'affiche correctement dans un template
  • La chaine de caractère de caractère générées est également correcte en UTF-8 car elle s'affiche console.
  • Le RDF mémoire à des problèmes d'encodages. Tous les caractères accentués de la chaine de caractères sont affichés bizarrement (comme lorsque l'on ouvre un fichier UTF-8 dans un éditeur en spécifiant latin-9 dans l'encodage.

D'ou vient le probleme ? Je n'ai pas vu de méthode dans @mozilla.org/rdf/xml-parser; indiquant l'encodage de caractères à utiliser. Pourquoi est-ce qu'il traite la chaine comme du latin-9 ?

Lorsque j'ajoute de nouvelles ressources (depuis mon composant) à ma source mémoire, les caractère accentués sont affiché correctement.

Si quelqu'un avait une solution a ce problème ca m'arrangerait bien ( style une facon d'obliger le parseur a bosser en utf ou une méthode pour parcourir le premier graph et ajouter simplement les resources aux deuxieme sans connaitre la structure du premier).

merci de votre aide

# [Resolu - utile pour d'autre personnes] Re: problème d'encodage depuis un RDF en chaine de caractere

Envoyé par : guyzmo

Date : 26/07/2006 17:47

Le problème est résolu grace au lien suivant : http://xulplanet.com/forum/viewtopic.php(..)

Par contre je ne comprends pas du tout pourquoi il faut que je convertisse ma chaine utf en utf avant de l'utiliser ...

 var uConv =  Components.classes['@mozilla.org/intl/scriptableunicodeconverter'].createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
uConv.charset = "utf-8";
		 
		
var parser=Components.classes["@mozilla.org/rdf/xml-parser;1"].createInstance(Components.interfaces.nsIRDFXMLParser);
parser.parseString ( this.mInner , baseUri, uConv.ConvertToUnicode(outputStream.data) );

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.