Je vais essayer d'intervenir sur l'encoding au départ et essayé de le
conserver pendant le traitement
Le 15 févr. 08 à 14:06, Jules Jacquot a écrit :
Le 15 02 2008 à 13:45, Michel LO a écrit :
Probablement parce que le shell applique un encoding qui est
normalement celui par défaut du système sur lequel il tourne,
alors que RB ouvre sans interprétation et applique l'encoding qu'on
lui indique.
Michel Lo
Le 15 févr. 08 à 13:25, Antoine Crêtaux a écrit :
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.
C'est normal
une data avec un encodage connu (UTF8)+une Data avec un encodage
inconnu donnent une chaîne inconnue
jules
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
Où passeras-tu l'Eternité ?
|