Bonjour à tous
Par avance, je m'excuse pour une question probablement classique, mais qui
me hérisse!
j'essaie d'écrire une chaine accentuée dans un fichier, mais je n'obtiens
pas les mêmes résultats si j'utilise la ligne de commande, ou si j'utilise
IDLE (et avec un script, n'en parlons pas).
Voici mes deux essais, et j'ouvre ensuite le fichier avec le bloc-notes (je
travaille sous Windows, Python 2.3.4). Ma première remarque, c'est pourquoi
mes deux chaines sont différentes ?
Sous IDLE
>>> s="raphaëlle et éric sont mariés, ça c'est sûr"
>>> s
"rapha\xeblle et \xe9ric sont mari\xe9s, \xe7a c'est s\xfbr"
>>> f=open("texte_idle.txt","w")
>>> f.write(s)
>>> f.close()
Bloc-notes: raphaëlle et éric sont mariés, ça c'est sûr
------
Sous CommandeLine
>>> s="raphaëlle et éric sont mariés, ça c'est sûr"
>>> s
"rapha\x89lle et \x82ric sont mari\x82s, \x87a c'est s\x96r"
>>> f=open("texte_idle.txt","w")
>>> f.write(s)
>>> f.close()
Bloc-notes: rapha‰lle et ‚ric sont mari‚s, ‡a c'est s–r
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric Brunel
Nicolas wrote:
Bonjour à tous Par avance, je m'excuse pour une question probablement classique, mais qui me hérisse!
j'essaie d'écrire une chaine accentuée dans un fichier, mais je n'obtiens pas les mêmes résultats si j'utilise la ligne de commande, ou si j'utilise IDLE (et avec un script, n'en parlons pas).
Voici mes deux essais, et j'ouvre ensuite le fichier avec le bloc-notes (je travaille sous Windows, Python 2.3.4). Ma première remarque, c'est pourquoi mes deux chaines sont différentes ?
Parce que la ligne de commande DOS n'utilise pas le meme encodage que les applis Windows. Donc quand tu tapes é sous DOS, c'est mappé sur le code 0x82 (encodage pourri spécifique MS-DOS), alors que tu tapes le meme é sous une appli Windows, c'est mappé sur le code 0xE9 (encodage standard iso8859-1, a.k.a latin1).
C'est d'ailleurs pour ça que quand tu importes un fichier texte dans Word, tu as deux choix possibles: "Texte seulement" ou "Texte MS-DOS" (de mémoire...). Le premier prend l'encodage latin1, le second l'encodage MS-DOS. Bienvenue dans le monde merveilleux de Microsoft!
Sous IDLE
s="raphaëlle et éric sont mariés, ça c'est sûr" s
"raphaxeblle et xe9ric sont marixe9s, xe7a c'est sxfbr"
f=open("texte_idle.txt","w") f.write(s) f.close()
Bloc-notes: raphaëlle et éric sont mariés, ça c'est sûr
------
Sous CommandeLine
s="raphaëlle et éric sont mariés, ça c'est sûr" s
"raphax89lle et x82ric sont marix82s, x87a c'est sx96r"
f=open("texte_idle.txt","w") f.write(s) f.close()
Bloc-notes: rapha‰lle et ‚ric sont mari‚s, ‡a c'est s–r
Normal: le bloc-notes essaie de décoder ton texte avec l'encodage latin1, et ça ne marche pas du tout. Je ne sais pas quelle est sa politique quand il voit que ça ne donne rien (sans doute essaie-t'il de faire un truc "intelligent" qui fait encore plus foirer les choses...), mais de toutes façons, ça ne peut pas marcher.
Moralité: ne *JAMAIS* utiliser de caractères accentués en ligne de commande DOS; ça ne fera pas ce que tu veux... Reste sous IDLE ou un éditeur de texte Windows et l'encodage sera cohérent (je ne parle pas d'éditeurs de texte sous DOS, vu que je pense que plus grand monde ne se sert de ces betes-là; mais ils poseraient le meme problème que la ligne de commande...)
HTH -- - Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> - PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com
Nicolas wrote:
Bonjour à tous
Par avance, je m'excuse pour une question probablement classique, mais qui
me hérisse!
j'essaie d'écrire une chaine accentuée dans un fichier, mais je n'obtiens
pas les mêmes résultats si j'utilise la ligne de commande, ou si j'utilise
IDLE (et avec un script, n'en parlons pas).
Voici mes deux essais, et j'ouvre ensuite le fichier avec le bloc-notes (je
travaille sous Windows, Python 2.3.4). Ma première remarque, c'est pourquoi
mes deux chaines sont différentes ?
Parce que la ligne de commande DOS n'utilise pas le meme encodage que les applis
Windows. Donc quand tu tapes é sous DOS, c'est mappé sur le code 0x82 (encodage
pourri spécifique MS-DOS), alors que tu tapes le meme é sous une appli Windows,
c'est mappé sur le code 0xE9 (encodage standard iso8859-1, a.k.a latin1).
C'est d'ailleurs pour ça que quand tu importes un fichier texte dans Word, tu as
deux choix possibles: "Texte seulement" ou "Texte MS-DOS" (de mémoire...). Le
premier prend l'encodage latin1, le second l'encodage MS-DOS. Bienvenue dans le
monde merveilleux de Microsoft!
Sous IDLE
s="raphaëlle et éric sont mariés, ça c'est sûr"
s
"raphaxeblle et xe9ric sont marixe9s, xe7a c'est sxfbr"
f=open("texte_idle.txt","w")
f.write(s)
f.close()
Bloc-notes: raphaëlle et éric sont mariés, ça c'est sûr
------
Sous CommandeLine
s="raphaëlle et éric sont mariés, ça c'est sûr"
s
"raphax89lle et x82ric sont marix82s, x87a c'est sx96r"
f=open("texte_idle.txt","w")
f.write(s)
f.close()
Bloc-notes: rapha‰lle et ‚ric sont mari‚s, ‡a c'est s–r
Normal: le bloc-notes essaie de décoder ton texte avec l'encodage latin1, et ça
ne marche pas du tout. Je ne sais pas quelle est sa politique quand il voit que
ça ne donne rien (sans doute essaie-t'il de faire un truc "intelligent" qui fait
encore plus foirer les choses...), mais de toutes façons, ça ne peut pas marcher.
Moralité: ne *JAMAIS* utiliser de caractères accentués en ligne de commande DOS;
ça ne fera pas ce que tu veux... Reste sous IDLE ou un éditeur de texte Windows
et l'encodage sera cohérent (je ne parle pas d'éditeurs de texte sous DOS, vu
que je pense que plus grand monde ne se sert de ces betes-là; mais ils
poseraient le meme problème que la ligne de commande...)
HTH
--
- Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> -
PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com
Bonjour à tous Par avance, je m'excuse pour une question probablement classique, mais qui me hérisse!
j'essaie d'écrire une chaine accentuée dans un fichier, mais je n'obtiens pas les mêmes résultats si j'utilise la ligne de commande, ou si j'utilise IDLE (et avec un script, n'en parlons pas).
Voici mes deux essais, et j'ouvre ensuite le fichier avec le bloc-notes (je travaille sous Windows, Python 2.3.4). Ma première remarque, c'est pourquoi mes deux chaines sont différentes ?
Parce que la ligne de commande DOS n'utilise pas le meme encodage que les applis Windows. Donc quand tu tapes é sous DOS, c'est mappé sur le code 0x82 (encodage pourri spécifique MS-DOS), alors que tu tapes le meme é sous une appli Windows, c'est mappé sur le code 0xE9 (encodage standard iso8859-1, a.k.a latin1).
C'est d'ailleurs pour ça que quand tu importes un fichier texte dans Word, tu as deux choix possibles: "Texte seulement" ou "Texte MS-DOS" (de mémoire...). Le premier prend l'encodage latin1, le second l'encodage MS-DOS. Bienvenue dans le monde merveilleux de Microsoft!
Sous IDLE
s="raphaëlle et éric sont mariés, ça c'est sûr" s
"raphaxeblle et xe9ric sont marixe9s, xe7a c'est sxfbr"
f=open("texte_idle.txt","w") f.write(s) f.close()
Bloc-notes: raphaëlle et éric sont mariés, ça c'est sûr
------
Sous CommandeLine
s="raphaëlle et éric sont mariés, ça c'est sûr" s
"raphax89lle et x82ric sont marix82s, x87a c'est sx96r"
f=open("texte_idle.txt","w") f.write(s) f.close()
Bloc-notes: rapha‰lle et ‚ric sont mari‚s, ‡a c'est s–r
Normal: le bloc-notes essaie de décoder ton texte avec l'encodage latin1, et ça ne marche pas du tout. Je ne sais pas quelle est sa politique quand il voit que ça ne donne rien (sans doute essaie-t'il de faire un truc "intelligent" qui fait encore plus foirer les choses...), mais de toutes façons, ça ne peut pas marcher.
Moralité: ne *JAMAIS* utiliser de caractères accentués en ligne de commande DOS; ça ne fera pas ce que tu veux... Reste sous IDLE ou un éditeur de texte Windows et l'encodage sera cohérent (je ne parle pas d'éditeurs de texte sous DOS, vu que je pense que plus grand monde ne se sert de ces betes-là; mais ils poseraient le meme problème que la ligne de commande...)
HTH -- - Eric Brunel <eric (underscore) brunel (at) despammed (dot) com> - PragmaDev : Real Time Software Development Tools - http://www.pragmadev.com
News M Claveau /Hamster-P
Bonsoir !
Dans ton invite de commande, tape la ligne suivante :
mode con: cp select52 [entrer]
ça devrait aller mieux.
Et, si ça ne suffit pas, change aussi la police d'affichage, dans les propriétés de la fenêtre.
--
@-salutations -- Michel Claveau
Bonsoir !
Dans ton invite de commande, tape la ligne suivante :
mode con: cp select52 [entrer]
ça devrait aller mieux.
Et, si ça ne suffit pas, change aussi la police d'affichage, dans les
propriétés de la fenêtre.