Re: [Python-es] Error de codificación de texto en C GI
Mario Alberto Encalada Cavada <[email protected]>
| Newsgroups | gmane.comp.python.general.castellano |
|---|---|
| Message-ID | <[email protected]> |
en algunos casos he utilizado esta receta:
def encode_for_html(unicode_data, encoding='ascii'):
return unicode_data.encode(encoding, 'html_replace')
En otras creo que este enlace te puede ayudar más ...
http://code.activestate.com/recipes/303668/
2009/10/18 Sergio Martín <[email protected]>
> 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
>
> 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
>
--
_____________________________
Mario Encalada Cavada
[email protected]
_____________________________
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes