Ver Mensaje Individual
  #12 (permalink)  
Antiguo 11/12/2011, 00:06
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: A mí no me funciona el #-*- coding: utf-8 -*-

Esto del #coding es similar al charset en html.

El html puede tener un enconding por ejemplo cp1252 pero si el charset indica utf-8 entonces vas a ver caracteres extraños.

No hay manera segura o barata de detectar en encoding de un archivo o string, ya que este puede o no tener encoding y si tiene encoding puede tener uno, dos o muchos encodings que los acepte aunque este no tenga caracteres imprimibles.

Al parecer por lo menos para el print a mi me funciona bien cuando hago lo siguiente:

Código Python:
Ver original
  1. #coding: some-encoding
  2. print 'á'
  3. print u'á'
  4. print repr('á')
  5. print repr(u'á')

Por ejemplo en ubuntu 11.10 a mi me imprime correctamente todas las 'á' pero no se si en windows te imprimirá caracteres extraños o te lo imprimirá correctamente. Creo que depende mucho de que consola correrá ese proceso.

Volviendo a lo del html, si mi navegador es un navegador decente y hace el encoding de la pagina de la pagina de acuerdo al charset entonces no creo que exista problema alguno.(Como mi shell en linux)
Pero si tengo un navegador que le tengo que configurar yo el charset para que despliegue bien alguna pagina (como parece ser caso del cmd de windows) entonces te conviene mas usar el cp1252 del windows.

Es lo que yo hacia cuando programaba en windows.

Igual siempre recomiendo esta lectura para mayor entendimiento de los encodings.