OVH Cloud OVH Cloud

Caractères français "é"...

5 réponses
Avatar
RCT83
Bonjour
je suis sous 2000 et XP, et j'ai un problème avec l'utilisation des caractères "spéciaux" comme é, è, à... de la langue française
Sous pythonwin il n'y a pas de problème, j'ai fais ce qui est décris dans Dive into python (création d'un fichier pour importer l'iso voulu au démarrage: sys.setdefaultencoding('iso-8859-1')).
Mais lorsque je lance mon fichier .py depuis le poste de travail alors je me retrouve avec un message d'erreur concernant ces caractères
Que faut-il faire pour que ces caractères soient reconnus. Merci

--
RCT83

-----------------------------------------------------------------------
Voir theme: http://www.frbox.net/viewtopic-448623.html

Envoyé de http://www.frbox.net

5 réponses

Avatar
Jonathan Barnoud
Bonjour,
je suis sous 2000 et XP, et j'ai un problème avec l'utilisation des caractères "spéciaux" comme é, è, à... de la langue française.
Sous pythonwin il n'y a pas de problème, j'ai fais ce qui est décris dans Dive into python (création d'un fichier pour importer l'iso voulu au démarrage: sys.setdefaultencoding('iso-8859-1')).
Mais lorsque je lance mon fichier .py depuis le poste de travail alors je me retrouve avec un message d'erreur concernant ces caractères.
Que faut-il faire pour que ces caractères soient reconnus. Merci.


Tu as une ligne #_*_ coding:iso-8859-1 _*_ au début de ton script ?

Il est necessaire depuis je ne sais plus quelle version d'indiquer l'encodage de ton
script au début.

Jonathan

Avatar
Sebastien Aubry
Bonjour,
je suis sous 2000 et XP, et j'ai un problème avec l'utilisation des caractères "spéciaux" comme é, è, à... de la langue française.
Sous pythonwin il n'y a pas de problème, j'ai fais ce qui est décris dans Dive into python (création d'un fichier pour importer l'iso voulu au démarrage: sys.setdefaultencoding('iso-8859-1')).
Mais lorsque je lance mon fichier .py depuis le poste de travail alors je me retrouve avec un message d'erreur concernant ces caractères.
Que faut-il faire pour que ces caractères soient reconnus. Merci.


Il te suffit d'ajouter cette ligne en tête de tes fichiers :

# -*- coding: iso-8859-1 -*-

Et tu n'auras plus cet avertissement.

Avatar
Do Re Mi chel La Si Do
Bonjour !

Comme on te l'a dit, il faut mettre, au début de ton script :
# -*- coding: iso-8859-1 -*-
Si le fichier est encodé en iso-8859-1

Mais, es-tu sûr d'être en ISO-8859-1 ? Ne serais-tu pas, plutôt, en CP-1252
? Le CP-1252 est, par défaut, l'encodage standard de windows.
Et, dans ce cas, il faudrait commencer ton script par :
# -*- coding: cp-1252 -*-

En fait, il faut regarder, dans ton éditeur, quel encodage in utilise. Mais
l'encodage "ANSI", c'est du CP-1252.


Ensuite, si tu affiche des messages dans la console (exemple : print"C'est
pas Noël"), il faudra adapter le bon code-page de la console.
Par exemple, pour le CP-1252, il faut taper :
MODE CON: CP SELECT52
Faute de quoi, certains caractères (accents, notamment) seront mal
interprétés.


Dernière info, cela est obligatoire depuis Python-2.3


Bonne journée.

Michel Claveau





PS-1 : le CP-1252, bien que plus proche de l'ISO-8859-15, ne diffère que
très peu de l'ISO-8859-1. Donc, toute confusion aura des conséquences
limitées.
PS-2 : ISO-8859-1 est souvent appelé "Latin-1" ; ce terme est aussi accepté
par Python.
PS-3 : il existe également une différence, entre ISO 8859-1 et
ISO-8859-1 ; en dehors du tiret supplémentaire, il y a la question des
caractères de contrôles (codes inférieurs à 32)
Avatar
F. Petitjean
Bonjour !

Comme on te l'a dit, il faut mettre, au début de ton script :
# -*- coding: iso-8859-1 -*-
Si le fichier est encodé en iso-8859-1

Mais, es-tu sûr d'être en ISO-8859-1 ? Ne serais-tu pas, plutôt, en CP-1252
? Le CP-1252 est, par défaut, l'encodage standard de windows.
Et, dans ce cas, il faudrait commencer ton script par :
# -*- coding: cp-1252 -*-

En fait, il faut regarder, dans ton éditeur, quel encodage in utilise. Mais
l'encodage "ANSI", c'est du CP-1252.


Ensuite, si tu affiche des messages dans la console (exemple : print"C'est
pas Noël"), il faudra adapter le bon code-page de la console.
Par exemple, pour le CP-1252, il faut taper :
MODE CON: CP SELECT52
Faute de quoi, certains caractères (accents, notamment) seront mal
interprétés.


Très bonne explication. Cependant, l'affichage à la console (cmd.exe)
c'est un peu tordu :
F:sysint>psexec WS-DRJMOM cmd /c ver

PsExec v1.58 - Execute processes remotely
Copyright (C) 2001-2005 Mark Russinovich
Sysinternals - www.sysinternals.com

Couldn't access WS-DRJMOM:
AccÞs refusÚ.

Et le fameux "Accès refusé" qui entre nous est le seul message émis par
windows (et non pas par l'application elle-même qui doit se contenter
d'un FormatMessage et d'un print) refuse de s'afficher correctement avec
les combinaisons suivantes
MODE CON: CP SELECT52
MODE CON: CP SELECT…0

Cela m'a l'air un peu compliqué de gérer CON:, ou c'est moi qui suis CON
?

Incidemment, si quelqu'un a une documentation sur les conditions dans
lesquelles la commande psexec (trouvée dans PStools www.sysinternals.com )
va aboutir, je suis preneur. Premiers essais vendredi et j'avais réussi
à me connecter et aujourd'hui retour à la case départ et bricolage sans
succès des services sur la machine cible. Et s'il étatit possible
d'avoir des "sous-titres inversés" dans l'appliquette qui gère les
services ce serait sympa (Microsoft a eu l'idée géniale de tout traduire
et donc "SharedAccess" et "RemoteAccess" cela correspond à quoi
exactement ? : toutes les infos techniques n'utilisent que l'anglais ).

Avatar
Do Re Mi chel La Si Do
Bonsoir !


Chez moi, le message d'erreur de PsExec s'affiche correctement, après un
MODE CON: CP SELECT52 ; un point complémentaire, dans le fenêtre DOS,
dans les propriétés (de cette fenêtre), on peut choisir la police ; cela
peut jouer.

Sinon, avec cet utilitaire, je n'ai JAMAIS réussi à obtenir quelque chose
(contrairement aux autres outils de Sysinternals).
En fait, pour intervenir sur des postes, j'utilise massivement Ultra-VNC
(http://ultravnc.sourceforge.net), en réseau local, et Symantec-PC-anywhere
à distance (via ADSL).

Pour en revenir à PsExec, il semblerait que le problème soit fréquent.
Quelques pistes de recherche :

1) Pare-feu Windows: Autoriser l'exception d'administration à distance :
%SystemRoot%system32RemoteExecAgent.exe:*:Enabled:RemoteExec

2) Chercher un document Microsoft intitulé "Deploying Windows Firewall
Settings for Microsoft Windows XP with Service Pack 2"



J'avais essayé un autre utilitaire : RemoteExec, payant (15 jours à
l'essai), que l'on trouve chez Copernet. Mais j'avais eu d'autres problèmes
; et, entre Ultra-VNC, et des scripts Python, j'ai fait sans.


@-salutations

Michel Claveau