[eside-ghost] python unicode harakiri

Yuki (aka Rubén Gómez) rugoli en gmail.com
Mie Mar 2 13:47:38 CET 2011


2011/3/2 Saúl Ibarra Corretgé <saghul en gmail.com>:
>> Y si no sabemos cómo nos viene el string? Es decir, si nos viene un
>> string a veces en utf pero otras veces en iso8859-1 y otras veces en
>> otro encoding?
>>
>
> Eso es como imposible... pero sin el como.
Yap, imagino.

>> Pregunto porque el otro día también me pasó lo mismo con un plugin de
>> XBMC. El plugin este sirve para ver las listas de reproducción de
>> Youtube en el XBMC, y tenía una lista con una tilde ("Vídeos)" y
>> cuando quité "í" funcionó.
>>
>
> Tenía eso definido como un literal en el fichero Python? En tal caso
> tienes que definir el encoding del fichero:
>
> #coding=utf8
El script que petaba era:
http://xbmc.git.sourceforge.net/git/gitweb.cgi?p=xbmc/plugins;a=blob;f=plugin.video.youtube/YouTubeCore.py;h=acfccc1e95135501d22d55222188dd3fcc8a48b0;hb=HEAD
 y tal como se ve, no tiene ninguna opción del coding

concretamente petaba en la línea 345 que es:
video['Title'] =
node.getElementsByTagName("title").item(0).firstChild.nodeValue.replace('Activity
of : ', '').replace('Videos published by : ', '').encode( "utf-8" );

El plugin este lo que hace es conectarse a tu cuenta de youtube, te
mira tus Playlist, y esta línea lo que hace es sacarte los títulos
para que puedas elegir una de ellas, y petaba por tener como título
"Vídeos".

Por lo que veo recibe un dom, y lo parsea, lo que no sé es cómo lo
recibe de Youtube, ya que no hice pruebas. Pero me ha picado la
curiosidad así que luego miraré en casa.


Más información sobre la lista de distribución eside-ghost