# -*- coding: cp1252 -*-

Tny a.porrua en gmail.com
Vie Mayo 19 21:46:11 CEST 2006


Pues ni con utf-8, ni con iso-8859-1, ni iso-8859-15, ni cp1512

No importa, que se quede así.

Lo extraño del asunto es que desde el idle funciona perfecto, pero desde 
cmd no.

Voy a subir el script a la lista bajo otro asunto porque a alguno le 
puede resultar útil, y para ver si alguien se anima a hacer una versión GUI.


José Ferney Franco escribió:
> Yo tengo en mis archivos en la primera línea la siguiente línea y no 
> tengo ningún problema:
>
> # -*- coding: iso-8859-1 -*-
>
>
> Luis Rodrigo Gallardo Cruz escribió:
>> On Thu, May 18, 2006 at 08:05:00PM +0200, Luis Miguel Morillas wrote:
>>  
>>> 2006/5/19, Tny <a.porrua en gmail.com>:
>>>    
>>>> en el idle aparecen los carácteres correctamente, pero en la 
>>>> consola no,
>>>> en lugar de á aparece beta, 3/4 por ó, en lugar de é aparece Ú ¿¿??
>>>>
>>>> ¿sabe alguien como corregirlo?
>>>>
>>>>
>>>>      
>>>>> Hola
>>>>> ¿Qué debo poner para que imprima por pantalla correctamente los
>>>>> caracteres castellanos?
>>>>> vocales con tildes y esas cosas
>>>>>         
>>
>> Curso patrulla de codificaciones y python:
>>
>> 1. Las cadenas están hechas de caracteres.
>> 2. Los caracteres se representan en memoria como (una secuencia de)
>> numeros. La elección de que número representa un caracter se llama
>> 'codificación'.
>> 3. Diferentes sistemas usan diferentes codificaciones.
>> 4. Un archivo .py es, en si mismo, una cadena que el compilador lee para
>> transformar en una secuencia de instrucciones a ejecutar.
>> 5. Cuando python quiere imprimir una cadena, necesita convertirla en una
>> secuencia de números, que envia a algún dispositivo de salida (consola,
>> widget gráfico, impresora, etc)
>>
>> Entonces:
>> Tu programa está guardado en disco, como una secuencia de números, de
>> acuerdo a *alguna* codificación, que es elegida por tu editor. La línea
>> -*- coding: bla-bla-bla -*- le dice al *compilador* cual codificación es
>> esa. Si tu editor sugiere alguna, lo mejor es que le creas y la dejes
>> como está.
>> Una vez compilado y ejecutandose, hay en memoria unas cadenas de
>> caracteres que, presumiblemente, quieres imprimir. En el caso default
>> Python toma la cadena y la pasa por la codificación default del sistema
>> y avienta los números resultantes al dispositivo de salida. Si lo que
>> python cree que es la codificación default y lo que el dispositivo
>> espera como codificación no coinciden, pues el dispositivo va a poner
>> caracteres 'raritos'.
>>
>> Así que:
>> a) puedes corregir la codificación default. Asomate al modulo 'site'.
>> b) puedes hacer la codificación tú, evitando el default:
>>   print "mi cadena".encode("mi-codificación-favorita")
>>
>>   Dado que suena a que estás en Win, lo más probable es que tu
>>   codificación favorita sea cp1252. El resto del mundo castellano usa
>>   iso8859-1 ó iso8859-15. O prueba también con utf8




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