Buenas, bueno ... vengo con un problema que llevo arrastrando unos días. Tengo el siguiente problema, me llega una cadena de texto de retorno (result) y esta no es unicode pero contiene caracteres acentuados, ñ, etc ...
result = profe.SearchQuestion(message, nickname.split("!")[0]) > > if result: > s.send("PRIVMSG %s :%s, %s\r\n" % (channel, nick, result)) > He probado varias cosas para codificar: s.send(unicode(("PRIVMSG %s :%s, %s\r\n" % (channel, nick, result)))) > o: if type(txt) not is unicode: txt = txt.decode("utf-8") > >> else: txt = txt.decode("iso-8859-15") >> > s.send("PRIVMSG %s :%s, %s\r\n" % (channel, nick, txt)) El caso es que desde mi entorno IDE cuando lo ejecuto no me casca y si lo ejecuto en un terminal casca con errores tipo: Traceback (most recent call last): File "./irc.py", line 327, in <module> Irc() File "./irc.py", line 118, in __init__ s.send((unicode("PRIVMSG %s :%s, %s\r\n" % (channel, nick, result)))) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 61: ordinal not in range(128) Parece que desde el terminal trata a las cadenas como ascii ! y no tenia por que ... vamos, no entiendo como en el IDE funciona y en el terminal no. Uso pydev como IDE y bash para lanzar el programa. Si sirve de algo en las cabeceras de cada archivo tengo: #!/usr/bin/env python # -*- coding: utf-8 -*- [...] y esto por se acaso: $ locale LANG=es_ES.utf8 LC_CTYPE="es_ES.utf8" LC_NUMERIC="es_ES.utf8" LC_TIME="es_ES.utf8" LC_COLLATE="es_ES.utf8" LC_MONETARY="es_ES.utf8" LC_MESSAGES="es_ES.utf8" LC_PAPER="es_ES.utf8" LC_NAME="es_ES.utf8" LC_ADDRESS="es_ES.utf8" LC_TELEPHONE="es_ES.utf8" LC_MEASUREMENT="es_ES.utf8" LC_IDENTIFICATION="es_ES.utf8" LC_ALL= Un saludo
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/