Python: Cambiar codificación (encoding) por defecto

Python, por defecto trae una codificación en ascii, lo que probablemente os generará problemas y dolores de cabeza a la hora de utilizar caracteres con tilde o especiales como la «ñ». El típico error es así:

UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\u2014′ in position 14: ordinal not in range(128)

Podéis comprobar la codificación por defecto de python desde la consola python:

>>> import sys
>>> sys.getdefaultencoding()
'ascii'

Para modificar la codificación, simplemente cread un fichero llamado «sitecustomize.py» dentro de la carpeta «site-packages» de python (por ejemplo en mi instalación está en /usr/lib/python2.4/site-packages, y añadir al fichero el siguiente contenido (dependiendo de la codificación que queráis):

import sys
sys.setdefaultencoding('iso-8859-15')

5 comentarios en “Python: Cambiar codificación (encoding) por defecto

  1. La ubicación del directorio «site-packages« depende del sistema operativo, y la ubicación en la que Python fue instalado. No obstante, las siguientes ubicaciones son las más comunes:
    * En Linux: «/usr/lib/python2.X/site-packages«
    * En Windows: «C:\Python2.X\lib\site-packages«
    * En MacOSX: «/Library/Python2.X/site-packages«

    Lo importante aquí de lo poco que hay que entender es saber que la ruta site-packages es de las rutas que por defecto Python escanea en busca de módulos al inicio.

    En versiones anteriores de Python (hasta la 1.5a3 inclusive), los guiones o módulos que necesitaban utilizar módulos específicos de la instalación debían utilizar «import site» en algún lugar cerca del principio del código. Esto ya no es necesario.

  2. Yo lo que hago és añadir una linea al principio de los fitxeros que pueden dar-me problemas. La linea és:
    # -*- coding: UTF-8 -*-

    Suerte!

Comments are closed.