Solución:
donde sea que necesite usar en sus caracteres de código que no sean de ascii, como:
ă
El intérprete se quejará de que no entiende ese carácter.
Por lo general, esto sucede cuando define constantes.
Ejemplo: agregar a x.py
print 'ă'
luego inicia una consola de Python
import x
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "x.py", line 1
SyntaxError: Non-ASCII character 'xc4' in file x.py on line 1,
but no encoding declared;
see http://www.python.org/peps/pep-0263.html for details
Utilice siempre UTF-8 y asegúrese de que su editor también utilice UTF-8. Inicie su secuencia de comandos de Python de esta manera si usa Python 27:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
Esta es una buena publicación de blog de Nick Johnson sobre Python y UTF-8:
http://blog.notdot.net/2010/07/Getting-unicode-right-in-Python Por cierto, esta publicación se escribió antes de que pudiera usar:
from __future__ import unicode_literals
Una respuesta más directa:
En Python 3+: no es necesario declarar. UTF-8 es el predeterminado. Asegúrese de que el archivo esté codificado en UTF-8. Algunos editores de Windows no lo tienen de forma predeterminada. No estará de más declararlo, y algunos editores pueden usarlo.
En Python 2: siempre. El valor predeterminado depende del sistema operativo.
Y recuerde: se trata solo de sus archivos de código fuente. Ahora, en el tercer milenio, el cuerda el tipo ya no existe. Debes cuidar el tipo texto, que es una secuencia de bytes y una codificación. Aún tendrá que definir su codificación en todas las operaciones de entrada y salida. Estas operaciones seguirán dependiendo de su entorno, por lo que es mejor seguir la regla: Explícito es mejor que implícito.