Dnegel666 Posté 10 Juillet 2005 Posté 10 Juillet 2005 Slt à tous, Bon mon problème est assez bizarre, je vous l'accorde : J'ai un .js contenant : //////////fichier = "test.txt";//////////// define constants// Note: if a file exists, using forWriting will set// the contents of the file to zero before writing to// it. var forReading = 1, forWriting = 2, forAppending = 8;// define array to store lines. rline = new Array();// Create the object fs = new ActiveXObject("Scripting.FileSystemObject");f = fs.GetFile(fichier);// Open the file is = f.OpenAsTextStream( forReading, 0 );// start and continue to read until we hit// the end of the file. var count = 0;while( !is.AtEndOfStream ){ rline[count] = is.ReadLine(); count++;}// Close the stream is.Close();// Place the contents of the array into // a variable. var msg = "";for(i = 0; i < rline.length; i++){ msg += rline[i] + "\n";}// Give the users something to talk about. WScript.Echo( msg );number = Math.round(Math.random()*rline.length);WScript.Echo( number +". "+ rline[number] ); Donc, d'après ce qui est écrit, il doit m'afficher tout le contenu du fichier texte et en plus choisir un nombre au hazard qui correspond à un n° de ligne qu'il doit m'afficher. Jusque là, tout va bien, sauf que mon fichier texte n'est pa enregistrer en ANSI, comme tous les autres... J'ai du l'enregistrer en Unicode, car il contient des caractères compliqué d'autres langues. Et c'est là que ça coince, parce que avec un fichier en ANSI, je n'est pas de problèmes, il n'y en à seulement quand le format est du Unicode. je lui demande de m'afficher le fichier, é il m'écrit toujours " 'ÿBf " Question : Comment lire un fichier texte en unicode avec du activeX ?
demo Posté 13 Juillet 2005 Posté 13 Juillet 2005 le pb vient des polices de caractères correspondant aux caractères des autres langues. Ca n'est pas lié directment à l'objet que tu utilises pour lire le fichier : lui, il ne fait que récupérer qqs chose en entrée, et generer un fluc en sortie. Faudra surement que tu effectue une table de correspondance pour savoir comment sont coder les caractères spéciaux, et comment ça peut être interprété par ta machine
Dnegel666 Posté 13 Juillet 2005 Auteur Posté 13 Juillet 2005 Euh oui ..... et comment ? parce-que même sans caractères spéciaux, en unicode, j'ai toujours la même erreur.
loufoque Posté 16 Juillet 2005 Posté 16 Juillet 2005 (modifié) ANSI, Unicode.... Aah la terminologie windows et son non-sens... Déjà, si tu veux mon avis, plutôt que d'utiliser UTF-16 LE (ce que windows appelle Unicode) tu ferais mieux d'utiliser UTF-8 sans BOM, étant donné qu'UTF-16 n'a aucun intérêt (selon moi), si ce n'est d'apporter des complications. Ensuite ça dépend si le fichier js est lié à une page web, comment est-il lié, quel est l'encodage fourni pour la page web et le js... Et que fait exactement WScript.Echo ? C'est la même chose que document.write() ? Edit: après quelques tests, je n'arrive toujours pas à insérer le texte. Cela semble être un bug d'Internet Explorer, enfin il est vrai que les problèmatiques d'encodages avec Ecmascript et DOM sont un peu complexes. Une alternative serait d'utiliser les entités numériques pour spécifier les caractères non ASCII, ou alors convertir les données avec ES lors de l'insertion dans le document. Modifié 16 Juillet 2005 par loufoque
Dnegel666 Posté 18 Juillet 2005 Auteur Posté 18 Juillet 2005 Non, ce n'est qu'un .js isolé. et même en UTF-8 ou encore l'autre possibilité (UTF-16 big endian,; je crois), il y à qu'en même des erreurs pour les accents... Mais bon, maintenant, j'ai supprimé ts les accents (snif), et remit en "UTF-16 LE"... Merci quand même
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant