A priori j'ai réussi à contourner le problème. cela ne me plaît pas
mais cela marche.
En fait le contenu de MesDatas provenait en partie d'un autre fichier.
Au début j'avais ouvert le fichier avec un textin classique et cela
fonctionnait. Pour améliorer les perfs (plus de 6000 fichiers à
ouvrir) je suis passé par un shell. c'est cela qui dérègle tout. Les
datas provenant de cette lecture intégré dans un string avec d'autres
datas modifiaient l'encoding. En remettent une ouverture classique
tout redevient normal. C'est bon mais je voudrais bien savoir pourquoi
je ne peux pas passer par un shell....
Le 15 févr. 08 à 02:30, Jules Jacquot a écrit :
la ligne de code est correcte. Je l'utilise pour enregistrer les
fichiers windows sous mac de cette manière
#If TargetWin32 then
streamo.write s.convertencoding(encodings.systemdefault)
#Endif
#If TargetMacOS then
streamo.write s.convertencoding(encodings.IsoLatin1)
#Endif
Il faut peut-être définir l'encodage avant de convertir
s=defineencoding(s,encodings.UTF8)
streamo.write s.convertencoding(encodings.systemdefault)
jules
Le 14 02 2008 à 20:43, Antoine Crêtaux a écrit :
De plus en plus mystérieux. Avec le code pas de changement
textout.write st2.convertencoding(encodings.systemdefault)
de meme avec
textout.write mesDatas.convertencoding(encodings.systemdefault)
par contre avec
textout.write st1.convertencoding(encodings.systemdefault)
Le fichier est vide...Le mystere s'épaissit..
Le 14 févr. 08 à 19:19, Jules Jacquot a écrit :
essaie
textout.write st2.convertencoding(encodings.systemdefault)
jules
Le 14 02 2008 à 19:11, Jacques Chanliau a écrit :
A mon avis, le problème vient de la variable st2, résultat d'une
addition de deux autres variables. Dans ce cas, j'ai constaté
souvent que l'information de l'encoding était perdue, même si
les deux variables (st1 et Mesdatas) ont le même encodage.
Si cette dernière condition est bien remplie, et que cet encodage
est bien de l'UTF8 l'écriture suivante devrait fonctionner: st2 =
defineencodings(st1 + Mesdatas, Encodings.UTF8).
ConvetEncoding nécessite de connaître l'encodage du texte que
l'on veut convertir.
Une autre solution, qui me semble moins élégante, est d'utiliser
la classe "textconverter"
Jacques Chanliau
Le 11 févr. 2008 à 19:37, Antoine Crêtaux a écrit :
Ayant un probleme d'encoding lors de l'écriture d'un fichier
j'essaie de forcer ce denier avec
st2 =st1+Mesdatas
textout = fichier.createTextFile
textout.write ConvertEncoding(st2,Encodings.UTF8)
// textout.write ConvertEncoding(st2,Encodings.MacRoman)
textout.close
Selon le type d'encoding que je choisi j'obtiens soit avec UTF8
la même chose que d'habitude soit avec MacRoman rien mon
fichier est vide...
J'ai pourtant l'impression de bien m'y prendre?
Mon string est correct dans le débuggeur par contre sur le
disque ;
"encore bénéficier"
Le 11 févr. 08 à 17:21, Eric Pousse a écrit :
Bon, he bien ça crash donc retour à la 2007r5...
Eric POUSSE
http://www.realcadd.com/
C'est par le bien-faire que se crée le bien-être
proverbe chinois
Il faut deux ans pour apprendre à parler et toute une vie pour
apprendre à se taire.
Proverbe chinois
|