Foros del Web » Programando para Internet » Python »

encode y decode ¿UTF-8?

Estas en el tema de encode y decode ¿UTF-8? en el foro de Python en Foros del Web. haber, he encontrado otra piedrecita en el camino, tengo me aplicacion donde quiero, va funcionando, como comente yo paso el texto a hexadecimal usando : ...
  #1 (permalink)  
Antiguo 03/12/2008, 11:02
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 16 años, 4 meses
Puntos: 0
encode y decode ¿UTF-8?

haber, he encontrado otra piedrecita en el camino, tengo me aplicacion donde quiero, va funcionando, como comente yo paso el texto a hexadecimal usando :

Código:
texto.encode("hex")
todo va bien, busca las cosas como toca y tal, pero cuando le digo :
Código:
texto.decode("hex")
pasece que carga las cosas de vicio asta que abres un registro que tiene acentos o ñ y me debuelve el siguiente error:
Código:
Traceback (most recent call last):
  File "DivineROeditor.py", line 179, in listboxClick
    self.text_ctrl_1.ChangeValue(texto)
  File "/usr/lib/python2.5/site-packages/wx-2.8-gtk2-unicode/wx/_controls.py", line 1717, in ChangeValue
    return _controls_.TextCtrl_ChangeValue(*args, **kwargs)
  File "/usr/lib/python2.5/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 74-75: unexpected end of data
basicamente que UTF8 no puede decodificar los bytes 74-75, que debe ser un acento o una ñ en hexadecimal, y entonces pregunto yo...
¿si en la cabecera puse
Código:
# -*- coding: iso-8859-15 -*-
no se supone que deberia utilizar esa codificacion y no utf8?

que alguien me diga por que hace esto, que me esta retrasando en el desarrollo... y tengo ganas de acabar.
  #2 (permalink)  
Antiguo 03/12/2008, 11:11
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: encode y decode ¿UTF-8?

texto = texhex.decode("hex")
texto = texto.decode("iso-8859-15")

parece que poniendo esto despues del primer decode y antes de que el progrma lo tenga que enseñar se arregla... igualmente si alguien sabe mas de esto me interesa mucho.
  #3 (permalink)  
Antiguo 03/12/2008, 12:01
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: encode y decode ¿UTF-8?

vale... la salida la soluciona por que solo tiene que enseñarlo... pero tengo problemas cuando codifico a hexadecimal, ya que python no escribe ñ como F1 que es el que le toca, especificado en /usr/lib/python2.5/iso8859_15.py , en cambio el escribe 'c3b1' cosa que ... no cuadra, supongo que es el valor que devuelve el ansii que utiliza por defecto hex... pero yo no quiero eso...
¿tendre que escribirme mi propia libreria o que?
  #4 (permalink)  
Antiguo 04/12/2008, 06:08
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: encode y decode ¿UTF-8?

¿Estás seguro de que el editor que estás usando te guarda los archivos como iso y no como UTF-8? Puede que ahí esté el problema.

No sé si estás usando una entrada de texto del usuario, pero en ese caso tenés que asegurarte también de que el texto se ingrese como iso8859-1


Saludos.
  #5 (permalink)  
Antiguo 04/12/2008, 08:44
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: encode y decode ¿UTF-8?

bueno, al final resulta que parte del problema era que la terminal de ubuntu le han puesto por defecto UTF8 y no el iso... aparte hay que codificar el texto antes de pararlo la hex y despues de descodificarlo, un poco coñazo pero funciona
  #6 (permalink)  
Antiguo 08/12/2008, 05:43
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: encode y decode ¿UTF-8?

Bueno, desde que descubri que se podia especificar valores hexadecimales sin traducir el texto a hex mi aplicacion trabaja mas rapido, pero por algun motivo que no entiendo, parece que wx no funciona bien enseñando caracteres raros, de hecho recuerdo que cuando te lo bajas tienes que cojer la version ansii o la unicode... yo no uso ninguna de las dos y la versas es que me esta dando demasiada guerra con este tema....

lei ademas que por lo visto python 2.5 e inferiores se hacen la picha un lio con las codificaciones... no se por donde tirar...
  #7 (permalink)  
Antiguo 08/12/2008, 07:38
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: encode y decode ¿UTF-8?

Cita:
cuando te lo bajas tienes que cojer la version ansii o la unicode... yo no uso ninguna de las dos
Pues alguna seguramente estás usando, si hay dos versiones tenés que usar alguna de ellas, ¿no?

Quizás estás usando la ANSI, probá con la Unicode.


saludos.
  #8 (permalink)  
Antiguo 09/12/2008, 02:15
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: encode y decode ¿UTF-8?

suena a solucion chapucera... pero por probar xD
  #9 (permalink)  
Antiguo 09/12/2008, 04:37
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: encode y decode ¿UTF-8?

Todo claro, en WX la list_box solo soporta ansii o utf8, ese era mi error, cargaba el texto en la list_box, ahora lo he modificado un poco y en la list_box cargo los punteros de la lista y asi no se queja el wx.

caso cerrado xD
  #10 (permalink)  
Antiguo 09/12/2008, 06:31
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: encode y decode ¿UTF-8?

Cita:
Iniciado por bloodyogos Ver Mensaje
suena a solucion chapucera... pero por probar xD
No es tan chapucera como suena, el soporte para Unicode no es tan trivial como suena, incluso a veces provoca una disminución de rendimiento. Por eso existen ambas versiones. Y por eso hay siempre problemas con los caracteres que no están en el alfabeto inglés, el soporte no es tan simple

Me alegro de que lo hayas podido solucionar.
Saludos.
  #11 (permalink)  
Antiguo 10/12/2008, 03:04
 
Fecha de Ingreso: junio-2008
Mensajes: 25
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: encode y decode ¿UTF-8?

bueno, al final para la parte final de mi programa tuve que tirar otra vez del encode("hex") y decode("hex") para substituir el texto, así no me da guerra, el programa va como la seda... al menos con un par de las tablas xD pero lo importante es que al final he amaestrado a mi python interior y he conseguido crear algo que obedece mis ordenes jejeje

Gracias a todos por vuestro soporte, sois todos unos cracks
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:38.