[pyar] Sockets & Encoding

Tordek kedrot en gmail.com
Dom Jul 8 03:50:31 ART 2012


2012/7/7 Pablo M. Mana <pablo.m.mana en gmail.com>:
>> El problema es que no se puede: como ves en tus mensajes, lo que ves
>> es feo... pero perfectamente válido. A lo mucho, heurísticas... pero
>> ¿qué pasa el día que se conecta Juancito Acosta de 13 años con el nick
>> Jéosta? ¿Le ponés "Jésta"?
>
> Creo que  primero me sacaria el sombrero si lo logra poner ese nick en
> una server que mas o menos siga la rfc, esta bastante normalizado que
> caracteres se puede usar en los nicks y los canales.

Imagino que te das cuenta que era un ejemplo por decir un ejemplo. El
punto es que aunque para vos sea basura, para otro tiene significado.

> Sospecho que facil no es pero los clientes de irc de alguna forma se
> las arrelgan.

IRSSI, por mencionar uno, ni se preocupa por eso; le tenés que
mencionar explícitamente qué encoding usar.

> ¿Te podes explayar un poco en eso de las heuristicas?

Listas de palabras y darle un rating a cada frase según la
probabilidad de cada encoding. Overkill al mango.

Con lo más parecido a una solución, que creo que es más o menos lo que
hace Irssi... podés aprovechar que no toda secuencia de bytes es UTF-8
válido, y, simplemente:

try:
    message = decode.decode(raw_message, "UTF-8")
except:
    message = decode.decode(raw_message, "latin-1")

(Pero no al revés.)

(Ah, y, quizá deberías dejale al usuario especificar el o los
encodings a intentar, posiblemente según el canal, porque UTF-8 es muy
lindo para nosotros, pero los japoneses quieren Shift-JIS porque UTF-8
dice que algunos Kanji son iguales cuando ellos dicen que no...)

>
> Saludos



More information about the pyar mailing list