Transliteración desímbolos II

Chema Cortés ch3m4 en ch3m4.org
Vie Jun 18 13:19:48 CEST 2004


Mensaje citado por rosendo <rosendo.martinez en valdisme.com>:

> La verdad que no estoy muy puesto, pero creo que ese método no está
> accesible más que en el modulo, site.
> Este modulo se encuentra por defecto el directorio Lib de tu distribución.
> Dentro de ella encontrarás:
> if 0:
>     # Enable to switch off string to Unicode coercion and implicit
>     # Unicode to string conversion.
>     encoding = "undefined"
>
> if encoding != "ascii":
>     # On Non-Unicode builds this will raise an AttributeError...
>     sys.setdefaultencoding(encoding) # Needs Python Unicode build !
>
>
> Donde puedes ver que puedes poner el encoding que necesites.

No, no cambies el 'site.py'. El sitio adecuado es el 'sitecustomize.py'. Si no
existe este fichero, basta con crearlo. Si te fijas hacia el final del
'site.py':

try:
    import sitecustomize
except ImportError:
    pass

if hasattr(sys, "setdefaultencoding"):
    del sys.setdefaultencoding


Se intenta importar el "sitecustomize.py" y justo después se elimina el método
'sys.setdefaultencoding'.

Por alimentar la curiosidad, el módulo sys queda en memoria así, sin el método
'setdefaultencoding', y será así como se utilize por el resto de módulos. La
única opción para volver volver a obtener este método es recargando el módulo
sys con reload(), pero resulta totalmente inútil cambiar la codificación una
vez inicializado el python.




Más información sobre la lista de distribución Python-es