pourquoi "sys.setdefaultencoding" n'existe pas ?

pourquoi "sys.setdefaultencoding" n'existe pas ? - Python - Programmation

Marsh Posté le 21-12-2005 à 17:18:43    

Bonjour,
 
Voici le problème :

Code :
  1. >>> import sys
  2. >>> sys.getdefaultencoding()
  3. 'ascii'
  4. >>> sys.setdefaultencoding('latin-1')
  5. Traceback (most recent call last):
  6.   File "<stdin>", line 1, in ?
  7. AttributeError: 'module' object has no attribute 'setdefaultencoding'


 
mais que se passe t-il donc ?
Merci.
 

Reply

Marsh Posté le 21-12-2005 à 17:18:43   

Reply

Marsh Posté le 21-12-2005 à 17:28:50    

si c'est juste pour préciser l'encoding de ton fichier source, ca passe par une chaine barbare du style "# -*- coding: utf-8 -*-" en début de fichier ?

Reply

Marsh Posté le 21-12-2005 à 17:48:08    

Extrait de "Dive into python" :
 

Citation :


(Due to some wacky programming tricks that I won't get into right now, you can't even call sys.setdefaultencoding after Python has started up. Dig into site.py and search for “setdefaultencoding” to find out how.)

Reply

Marsh Posté le 21-12-2005 à 20:15:25    

theshockwave > ce n'est pas seulement pour l'encoding du source, mais plutôt parce que j'ai des chaînes en unicode d'un côté de mon programme et, de l'autre côté, j'ai une erreur de décodage de caractère.
 
alerim > que dois-je en faire ? je ne tiens pas à modifier site.py, car je ne veux pas le faire faire à mes utilisateurs.

Reply

Marsh Posté le 21-12-2005 à 21:03:53    

Regarde la partie sur unicode dans "Dive Into Python", ce que tu demandes est expliqué. :o

Reply

Marsh Posté le 21-12-2005 à 23:38:37    

Citation :

When printing a string, Python will attempt to convert it to your default encoding, which is usually ASCII. (More on this in a minute.) Since this unicode string is made up of characters that are also ASCII characters, printing it has the same result as printing a normal ASCII string; the conversion is seamless, and if you didn’t know that s was a unicode string, you’d never notice the difference.


 
C'est vrai que ce bouquin contient plein d'infos, notamment s.encode('latin-1'), qu'on m'avait déjà dit mais je n'avais pas compris.
 
Par contre la solution "automatique" consiste à modifier sitecustomize.py, mais c'est une manip que devront aussi faire les utilisateurs, ce qui m'ennuie. tant pis je vais m'en tenir à s.encode('latin-1').
 
 
Merci pour votre aide. :jap:


Message édité par psychotek le 21-12-2005 à 23:40:02
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed