Un petit renseignement please

Le
Pierre Maurette
Bonsoir,

J'aurais besoin de savoir ce que renvoie:
print sys.stdout.encoding
sous Windows XP, en "Invite de commandes".
Une XP x64 me donne US-ASCII, mais c'est une version EN avec MUI, et
j'y ai déjà constaté des comportements particuliers.
Accessoirement, le même renseignent pour Vista.

Bonne soirée,

--
Pierre Maurette
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pierre Quentel
Le #1627912
On 17 mar, 18:05, Pierre Maurette
Bonsoir,

J'aurais besoin de savoir ce que renvoie:
print sys.stdout.encoding
sous Windows XP, en "Invite de commandes".
Une XP x64 me donne US-ASCII, mais c'est une version EN avec MUI, et
j'y ai déjà constaté des comportements particuliers.
Accessoirement, le même renseignent pour Vista.

Bonne soirée,

--
Pierre Maurette


Bonjour,

Voilà ce que ça donne sur mon PC :

Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:>python
Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit
(Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
import sys
print sys.stdout.encoding
cp850








Pierre



Méta-MCI \(MVP\)
Le #1637402
Bonsoir !

J'obtiens les résultats suivants :

Toujours en Python 2.5.2
J'ai deux façons de lancer l'invite de commande (et, donc, la commande
Python.exe)

Vista-Ultimate (configuré "à donf") :
a) cp850
b) cp1252

Vista Premium virtuel (config "d'origine") :
a) cp850

XP (optimisé ) :
a) cp850
b) cp1252

A noter que sur une configuration orientée Unicode (pour des tests),
j'obtiens :
C:Python25> print sys.stdout.encoding
Impossible d'initialiser le périphériq PRN


En fait, tout dépend comment est configurée l'invite de commande par
défaut. Et, c'est très facile de changer les choses, avec la commande
CHCP. Exemples :
CHCP 850 et python donnera cp850
CHCP 1252 et python donnera cp1252
CHCP 65001 (pour UTF-8) mal géré par Python
CHCP 437 et python donnera cp437
etc.
Par défaut, les machines françaises sont préconfigurées pour le
code-page 850.

Bonne soirée

Michel Claveau
Pierre Maurette
Le #1637401

[...]

cp850





Pierre


Merci, Pierre,

Pierre

--
Pierre Maurette




Pierre Maurette
Le #1643699
Bonsoir !

J'obtiens les résultats suivants :

Toujours en Python 2.5.2
J'ai deux façons de lancer l'invite de commande (et, donc, la commande
Python.exe)

Vista-Ultimate (configuré "à donf") :
a) cp850
b) cp1252

Vista Premium virtuel (config "d'origine") :
a) cp850

XP (optimisé ) :
a) cp850
b) cp1252

A noter que sur une configuration orientée Unicode (pour des tests),
j'obtiens :
C:Python25> print sys.stdout.encoding
Impossible d'initialiser le périphériq PRN


En fait, tout dépend comment est configurée l'invite de commande par défaut.
Et, c'est très facile de changer les choses, avec la commande CHCP. Exemples
:
CHCP 850 et python donnera cp850
CHCP 1252 et python donnera cp1252
CHCP 65001 (pour UTF-8) mal géré par Python
CHCP 437 et python donnera cp437
etc.
Par défaut, les machines françaises sont préconfigurées pour le code-page
850.


Merci de vos réponses.
J'ai un peu creusé, et mon souci venait du fait que j'utilise par
défaut le Python de Cygwin. Je n'ai pas mis de Python pour Windows dans
le PATH, mais un D:cygwinbin en tête.
Avec ce test et un éditeur en configuré en UTF8:

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import sys

myencoding = sys.stdout.encoding or 'cp1252'

def encu(s):
return s.encode(myencoding, 'replace')

def enc(s):
return encu(s.decode('utf-8'))

print sys.version
print sys.stdout.encoding
print sys.getdefaultencoding()

print enc('éèêàç$&£ù§')
print u'LxF6wis'.encode(myencoding, 'replace'),
print u'u0153uvre.'.encode(myencoding, 'replace'),
print encu(u'u0153uvre.'),
print enc('Löwis'),
print enc('Lxc3xb6wis')

J'obtiens sous XP:

U:codepython-codeThematique>python accents.py
2.5.1 (r251:54863, May 18 2007, 16:56:43)
[GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)]
US-ASCII
ascii
?????$&???
L?wis ?uvre. ?uvre. L?wis L?wis

U:codepython-codeThematique>D:Python234python accents.py
2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit (Intel)]
cp850
ascii
éèêàç$&£ù§
Löwis ?uvre. ?uvre. Löwis Löwis

U:codepython-codeThematique>D:Python24python accents.py
2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)]
cp850
ascii
éèêàç$&£ù§
Löwis ?uvre. ?uvre. Löwis Löwis

U:codepython-codeThematique>D:Python25python accents.py
2.5.1 (r251:54863, Apr 18 2007, 09:02:36) [MSC v.1400 64 bit (AMD64)]
cp850
ascii
éèêàç$&£ù§
Löwis ?uvre. ?uvre. Löwis Löwis

Et sous Linux:

[ Thematique]$ python accents.py
2.5.1 (r251:54863, Jan 14 2008, 13:07:32)
[GCC 4.2.2 20070909 (prerelease) (4.2.2-0.RC.1mdv2008.0)]
UTF-8
ascii
éèêàç$&£ù§
Löwis ½uvre. ½uvre. Löwis Löwis

J'utilise habituellement Eclipse + PyDev, sous XP et Linux avec le même
fiohier .py, et sa console interne. Je peux alors choisir
l'interprêteur. Dans la console, sys.stdout.encoding me renvoie None.
Je m'en sors à peu près avec:

myencoding = sys.stdout.encoding or 'cp1252'

Ce doit être 'cp1252' ou 'Latin-1' sous XP, et 'utf-8' sous Linux, pas
trouvé encore le moyen de choisir automatiquement. C'est pas grave dans
le contexte, il doit y avoir une solution par Eclipse, d'autant que si
le source est commun aux deux OS, le projet est propre à chaque
machine.

Bonne journée,

--
Pierre Maurette

Méta-MCI \(MVP\)
Le #1688821
Re !

Je ne sais pas pour Eclipse, mais, sous Windows, si vous voulez lancer
Python en choisissant le code-page de l'environnement, en une seule
ligne (pour une icone, ou une tâche planifiée, par exemple), vous pouvez
utiliser un truc du genre :
cmd /cchcp 1252 & c:python25python.exe
cmd /cchcp 850 & c:python25python.exe
cmd /cchcp 437 & c:python25pythonw.exe monscript.py

Cela permet au moins de rendre le code-page explicité (et non
implicité).
En remplaçant
c:python25python.exe
par
c:mesUsinesAGazeclipse.exe (en mettant le bon nom de
l'exécutable)

peut-être que ça marcherait aussi...

@+
--
Michel Claveau
Eric Brunel
Le #1757414
On Tue, 18 Mar 2008 11:11:04 +0100, Méta-MCI (MVP)
Re !

Je ne sais pas pour Eclipse, mais, sous Windows, si vous voulez lancer
Python en choisissant le code-page de l'environnement, en une seule
ligne (pour une icone, ou une tâche planifiée, par exemple), vous pouvez
utiliser un truc du genre :
cmd /cchcp 1252 & c:python25python.exe
cmd /cchcp 850 & c:python25python.exe
cmd /cchcp 437 & c:python25pythonw.exe monscript.py

Cela permet au moins de rendre le code-page explicité (et non implicité).
En remplaçant
c:python25python.exe
par
c:mesUsinesAGazeclipse.exe (en mettant le bon nom de
l'exécutable)

peut-être que ça marcherait aussi...

@+


Un gros troll bien poilu s'est caché dans le post ci-dessus; saurez-vous
le découvrir...?

Cela dit, c'est tellement vrai...
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"

Méta-MCI (MVP)
Le #1759264
Un gros troll bien poilu


C'était d'ailleurs le lendemain de l'enterrement du dernier poilu.


A ce (hors) sujet ("hommage de la nation... etc."), Demis Roussous a
déclaré avoir été très ému par cet hommage. Mais il tient à faire savoir
qu'il est toujours vivant...


@+

Michel Claveau

Jean-Baptiste renard
Le #1789509
Méta-MCI (MVP) wrote:

Demis Roussous a
déclaré avoir été très ému par cet hommage. Mais il tient à faire savoir
qu'il est toujours vivant...


c'est poilant :-)

Publicité
Poster une réponse
Anonyme