Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Un petit renseignement please

8 réponses
Avatar
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

8 réponses

Avatar
Pierre Quentel
On 17 mar, 18:05, Pierre Maurette wrote:
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



Avatar
Méta-MCI \(MVP\)
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
Avatar
Pierre Maurette

[...]

cp850





Pierre


Merci, Pierre,

Pierre

--
Pierre Maurette




Avatar
Pierre Maurette
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

Avatar
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...

@+
--
Michel Claveau
Avatar
Eric Brunel
On Tue, 18 Mar 2008 11:11:04 +0100, Méta-MCI (MVP)
wrote:
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+-'])"

Avatar
Méta-MCI (MVP)
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

Avatar
Jean-Baptiste renard
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 :-)