Re: [Python-es] Error de codificación de texto en CGI

Mario Alberto Encalada Cavada marioencalada en gmail.com
Lun Oct 19 21:28:47 CEST 2009


debes recordar que para que la linea te funcione con tilde debes enviar al
browser de internet la cadena "texto dé prueba"
Para eso hay algunas funciones en python que se encargan de codificar desde
utf-8 a xml.

2009/10/19 Sergio Martín <sergiomartinj en gmail.com>

> Pues quitando el módulo cgitb el resultado es el mismo.
> Solo que el código que recibe el navegador se simplifica a:
>
>        Linea sin tilde
>
> El script ahora mismo es:
>
>        #! /usr/local/bin/python3
>        # -*- coding: utf_8 -*-
>
>        print("Content-Type: text/html; charset=UTF-8")
>        print()
>        print("Linea sin tilde") # Se ve correctamente
>        print("Línea con tilde") # No se ve
>
> Aunque la línea de # -*- coding: utf_8 -*- es redundante ya que en python3
> es el predeterminado.
> He provado con otra versión un poco más completa y pasándole el
> Content-Type por una etiqueta meta de html para asegurarme, con exactamente
> el mismo resultado, el código es:
>
>        #! /usr/local/bin/python3
>        # -*- coding: UTF-8 -*-
>
>        # import cgitb
>        # cgitb.enable()
>
>        print('Content-Type: text/html; utf-8')
>        print()
>
>        print('<!DOCTYPE html>')
>        print('<html>')
>        print(' <head>')
>        print('         <meta http-equiv="Content-Type" content="text/html;
> charset=utf-8">')
>        print('         <title>Python</title>')
>        print(' </head>')
>        print(' <body>')
>
>        print('         <p>Texto de prueba #1</p>')
>        print('         <p>Téxtó dé prúébá #2</p>')
>
>        print(' </body>')
>        print('</html>')
>
> Es HTML5 y en un fichero .html funciona a la perfección y en uno .php
> también.
> ¿Puede ser problema de la configuración del Apache?
>
>
>
> El 19/10/2009, a las 11:41, Chema Cortes escribió:
>
>
>  El día 19 de octubre de 2009 09:07, Luis Miguel Morillas
>> <morillas en gmail.com> escribió:
>>
>>          print(u"Línea con tilde") # Utiliza siempre unicode para
>>> evitar esos problemas.
>>>
>>
>> Nope. En python3 no se usa el u"...". Por defecto, todos los literales
>> son ya unicode.
>>
>>
>> Por lo que veo de este error, el problema salta en el módulo cgitb, de
>> ahí la salida tan rara que sale. No consigo ver porqué falla. Nunca
>> habría que descartar que fuera algún bug del módulo cgitb. ¿Has
>> probado a quitarlo?
>> _______________________________________________
>> Lista de correo Python-es
>> http://listas.aditel.org/listinfo/python-es
>> FAQ: http://listas.aditel.org/faqpyes
>>
>
> _______________________________________________
> Lista de correo Python-eshttp://listas.aditel.org/listinfo/python-es
>
> FAQ: http://listas.aditel.org/faqpyes
>



-- 
_____________________________
Mario Encalada Cavada
marioencalada en gmail.com
_____________________________
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


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