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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.