[pyar] problema con sockets (solucionado)
Facundo Batista
facundobatista en gmail.com
Jue Mayo 23 08:51:18 ART 2013
2013/5/23 Miguel Barraza <correo en miguelbarraza.com.ar>:
> leo el socket y guardo el texto recibido en la variable:
> data= self.request.recv(1024)
> luego lo decodifico:
> data=data.decode('iso-8859-15')
Che, ¿estás seguro que los datos por el socket te vienen en Latin-9?
No está mal, pero es raro.
> proceso luego el resultado que debo responder y luego envío el mensaje:
> pero antes lo codifico a UTF-8:
> msg=msg.encode('utf-8')
> y lo envío.
> self.request.send(msg+"\n")
Esto está perfecto.
Una pregunta, vos mandás esto en UTF-8... del otro lado, ¿quien lo
lee? ¿sabés como lo está leyendo?
El detalle importante es que UTF-8 es "multibyte". Entonces, si del
otro lado se está haciendo algo como lo que hiciste vos...
data = self.request.recv(1024)
data = data.decode("utf8")
... entonces *a veces* (y va a ser un error dificil de detectar) la
secuencia multibyte te va a caer cortada (o sea, el primer byte de la
ñ codificada como lo último que se leyó ahí, y el segundo byte que
viene en la próxima lectura), y va a explotar al decodificarse...
Slds!
--
. Facundo
Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
Twitter: @facundobatista
More information about the pyar
mailing list