Envoyé par : xavax
Date : 24/09/2009 00:19
Bonjour,
Voici mon problème:
Ce script crée un fichier sur le bureau et écrit dedans une chaine de caractères. MAIS :
Comment forcer l'écriture en UTF-8 ?
function WriteTestFile(str){ var dirService = Components.classes["@mozilla.org/file/directory_service;1"] .getService( Components.interfaces.nsIProperties); var file = dirService.get("Desk", Components.interfaces.nsIFile) .QueryInterface(Components.interfaces.nsILocalFile); file.append("test_file_utf8.txt"); try { var fileOutStream = Components.classes['@mozilla.org/network/file-output-stream;1'] .createInstance(Components.interfaces.nsIFileOutputStream); try { var convutf8 = Components.classes['@mozilla.org/intl/scriptableunicodeconverter'].createInstance(Components.interfaces.nsIScriptableUnicodeConverter); convutf8.charset = "UTF-8"; str = convutf8.ConvertFromUnicode(str); } catch(e) { alert ('erreur1') } fileOutStream.init(file, 0x02 | 0x08 | 0x20, 0777, null); fileOutStream.write(str, str.length); fileOutStream.close(); } catch(e) { alert ('erreur2'); } } WriteTestFile("ooo"); //WriteTestFile("éàè");
j'ai beau cherché, je n'arrive pas à résoudre ce problême utf-8. Si quelqu'un peut m'aider, ...
bons clics à tous Xavax
Envoyé par : jérôme
Date : 24/09/2009 08:42
Bonjour, moi, pour convertir en utf8, j'utilise cette fonction :
function encodeUTF8(str){ var encoder = Components.classes["@mozilla.org/intl/utf8converterservice;1"] .createInstance(Components.interfaces.nsIUTF8ConverterService); return encoder.convertStringToUTF8(str,"ISO-8859-1",true); }
Si cela peut t'aider...
Envoyé par : xavax
Date : 24/09/2009 12:46
merci, mais ça ne marche toujours pas.
Envoyé par : thefab
Date : 25/09/2009 13:05
Ton code fonctionne... (en tout cas chez moi, XP Pro, XULRunner 1.9.2)
Edit: C'est peut être dû au fait que ton fichier XUL ne soit pas en UTF-8, quel encodage utilises-tu pour tes fichiers .xul ?
Edit2: En fait ça fonctionne si le texte provient du XUL (en UTF-8) mais pas si le texte est placé dans le JS (sauf si celui-ci est aussi en UTF-8 ?)
Résumé:
Edit3: Si le JS est en UTF-8 alors même le texte est bien convertit avec cette méthode ;-)
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.