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

Luis Miguel Morillas morillas en gmail.com
Lun Oct 19 09:07:46 CEST 2009


 El día 19 de octubre de 2009 08:54, Cesar Ortiz
<cesar.ortiz en gmail.com> escribió:
> Estas indicando que el texto del archivo es ut8 y estas metiendo texto que
> no lo es. Normal que no se vea. Para poner el acento tal tendrías que ver su
> encoding en ut8, o cambia el utf8 por latin1.
>
> El 18 de oct de 2009, 10:29 a.m., "Sergio Martín" <sergiomartinj en gmail.com>
> escribió:
>
> Hola.
> Estoy intentando hacer una web mediante Python en CGI, utilizo el set de
> caracteres UTF-8, toda va bien hasta que meto alguna tilde, pongo un código
> de ejemplo:
>
>         #! /usr/local/bin/python3
>         # -*- coding: utf_8 -*-
>
>         import cgitb
>         cgitb.enable()
>
>         print("Content-Type: text/html; charset=UTF-8")
>         print()
>         print("Linea sin tilde") # Se ve correctamente
>         print("Línea con tilde") # No se ve

          print(u"Línea con tilde") # Utiliza siempre unicode para
evitar esos problemas.



-- lm


>
> Uso python 3.1.1 sobre Mac OS X 10.6.1, el fichero está codificado como
> UTF-8, no BOM, y tiene permiso de ejecución.
> En el navegador (Safari 4.0.3) solo se ve la primera linea, y si le doy a
> "Ver código fuente" sale:
>
>         Linea sin tilde
>         <!--: spam
>         Content-Type: text/html
>
>         <body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> -->
>         <body bgcolor="#f0f0f8"><font color="#f0f0f8" size="-5"> --> -->
>         </font> </font> </font> </script> </object> </blockquote> </pre>
>         </table> </table> </table> </table> </table> </font> </font>
> </font>
>
> El log del Apache me muestra:
>
>         [Sun Oct 18 10:20:54 2009] [error] [client
> fe80::217:f2ff:fee7:9901] Error in sys.excepthook:
>         [Sun Oct 18 10:20:54 2009] [error] [client
> fe80::217:f2ff:fee7:9901] UnicodeEncodeError: 'ascii' codec can't encode
> character '\\xed' in position 1601: ordinal not in range(128)
>         [Sun Oct 18 10:20:54 2009] [error] [client
> fe80::217:f2ff:fee7:9901]
>         [Sun Oct 18 10:20:54 2009] [error] [client
> fe80::217:f2ff:fee7:9901] Original exception was:
>         [Sun Oct 18 10:20:54 2009] [error] [client
> fe80::217:f2ff:fee7:9901] Traceback (most recent call last):
>         [Sun Oct 18 10:20:54 2009] [error] [client
> fe80::217:f2ff:fee7:9901]   File "/Users/sergio/Sites/python/prueba.py",
> line 10, in <module>
>         [Sun Oct 18 10:20:54 2009] [error] [client
> fe80::217:f2ff:fee7:9901]     print("L\\xednea con tilde") # No se ve
>         [Sun Oct 18 10:20:54 2009] [error] [client
> fe80::217:f2ff:fee7:9901] UnicodeEncodeError: 'ascii' codec can't encode
> character '\\xed' in position 1: ordinal not in range(128)
>
> Si ejecuto el script desde la línea de comandos, el resultado es el
> correcto, con tildes.
> Y sin usar Python, en un fichero html el resultado también es correcto.
> ¿Alguna sugerencia?
> Gracias._______________________________________________
> Lista de correo Python-eshttp://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
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