Encodage texte sur lecture d'un fichier avec FSO

fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 - 15 sept. 2010 à 14:58
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 17 sept. 2010 à 18:04
Bonjour, j'ai un soucis de caractère dans un petit Gadget windows...
Voila je lis le contenu d'un fichier avec : FSO.OpenTextFile(Fichier, 1);

Si dans ce fichier j'ai le caractère => À
Lorsque je lis le fichier j'obtient => À
donc j'ai text="À"

J'ai essayé decodeURIComponent(escape(Text)); ça ne marche pas...!

Et lorsque j'affiche le code du caractère avec charCodeAt j'ai :
à : text.charCodeAt(0)=195
€ : text.charCodeAt(0)=8364 !!!!! ???

Voila une idée ????
Merci d'avance

8 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
15 sept. 2010 à 18:58
Bonjour,
je ne connais pas bien ces méthodes mais la documentation de MSDN devrait t'apporter la réponse, OpenTextFile Method, et notamment le paramètre de format, en UNICODE peut être?

;O)
0
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
16 sept. 2010 à 08:45
Bien justement, mon premier réflexe a été d'aller voir mais j'ai rien trouvé...
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
16 sept. 2010 à 13:17
Bonjour,
dans ce cas il s'agit d'un problème à la sauvegarde du fichier TXT et de l'encodage au moment de celle ci.
A parier que tu à un encodage UTF-8 avec une notion de BOM.
Enregistre ton fichier en ANSI basique.

;O)
0
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
16 sept. 2010 à 13:44
Le problème c'est que le fichier c'est pas moi qui l'enregistre

C'est le fichier de bookmarks de firefox... Donc je ne peut pas le modifier, je cherche juste à le lire ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
16 sept. 2010 à 19:13
sauf à connaître l'algorithme et faire cela à la mano, je ne vois pas de solution JavaScript...mais qui sait ?

;O)
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
17 sept. 2010 à 11:09
Bonjour,
la solution à ton problème est ici
UTF-8 data encode / decode, merci à Ken Thompson.

;O)
0
fredlynx Messages postés 662 Date d'inscription mercredi 16 janvier 2002 Statut Modérateur Dernière intervention 16 octobre 2010 3
17 sept. 2010 à 12:04
Nop désolé cette fonction ne marche pas ! J'ai un truc super tordu que j'ai maintenant compris mais je ne comprend pas pourquoi c'est comme ça...

En fait il y a un mélange UTF-8 - UNICODE en clair

Dans le fichier il y a : "À"
Si je passe ça dans le décodage utf-8 :
à : text.charCodeAt(0)=195
€ : text.charCodeAt(1)=8364

Le 8364 n'est pas pris en compte par la fonction de décode utf-8...

En fait c'est du utf-8 dans le fichier mais le fonction charCodeAt me renvoie la valeur décimale du code du carractère en UNICODE, pourquoi ????
à : text.charCodeAt(0)=195 => \u00C3
€ : text.charCodeAt(1)=8364=> \u20AC

Donc mes données dans le fichier sont en unicode....
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
17 sept. 2010 à 18:04
Le 8364 n'est pas pris en compte par la fonction de décode utf-8...
si il est pris en charge dans la condition suivante
else if((c > 191) && (c < 224)) {
par contre le résultat est étrange
ì [ 236 ] [ EC ]
ce qui ne correspond pas à l'attendu ????

je te mets un lien, que tu connais peut être
UTF-8 : principe et mise en oeuvre...

;O)
0
Rejoignez-nous