Re: [Python-es] Error de codificación de texto en C GI
Luis Miguel Morillas <[email protected]>
| Newsgroups | gmane.comp.python.general.castellano |
|---|---|
| Message-ID | <[email protected]> |
El día 19 de octubre de 2009 08:54, Cesar Ortiz <[email protected]> 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" <[email protected]> > 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