On Friday 23 December 2005 11:11, Orcan Ogetbil wrote: > Hi, > using the following code, I can get the track title that's being played in > amarok. > > [code] > import dcop > > dcopclient = dcop.DCOPClient() > dcopclient.registerAs("amarokapp") > dcopclient.rc = dcop.DCOPRef("amarok", "player") > > result = dcopclient.rc.call("title()") > title = result.data.data() > > print title > [/code] > > The problem is, when the track title contains non-ascii characters, they > are not displayed properly. > > The 'result' is a QByteArray object, > 'result.data.data()' is a ascii python string > > How and where should I set the encoding to display the track title > properly? (and how do I convert the QByteArray object to a unicode QString > object?) Take a look at PyKDE/doc/dcopext.html or examples/example_dcopext.py. PyKDE doesn't support the method you're using (but see below), because there's no easy way to convert the QByteArray to the appropriate object type using Python. title () should return a QString, and using the method outlined in the docs will get you a QString from title (). The code that does it is in extensions/dcopext.py and uses the dcop_add and dcop_next methods coded in C++ and compiled as part of sip/kdecore/bytearray.sip - you could use those methods in your own code if you want to duplicate the Python code in dcopext.py. Jim _______________________________________________ PyKDE mailing list PyKDE@mats.imk.fraunhofer.de http://mats.imk.fraunhofer.de/mailman/listinfo/pykde