Hi !

I'm trying to fix some annoying stuff in kopete svn trunk and the first thing 
is that all accent of groups/contacts are messed up.

After a little bit of tracking, the problem comes from method QString 
MSNSocket::unescape in protocols/msn/MSNSocket.cpp#787 :

  QString str2 = QUrl::fromPercentEncoding( str.toLatin1() );

In the 3.5 branch we have :

  QString str2 = KURL::decode_string( str, 106 );

So it seems KURL works better here. KDE4 apidoc says about 
KUrl::decode_string:

"Deprecated:
use QUrl::fromPercentEncoding(encodedURL) instead, but note that it takes a 
QByteArray and not a QString. Which makes sense since everything is 7 bit 
(ascii) when being percent-encoded."

The problem seems to be that str.toLatin1() mess up non latin1 characters : 
accents are non latin1 character because they are utf8 encoded (in utf8, 
accents are encoded using 2bytes, even if it could use the latin1 version).

So, humm ... the fix is easy, replace by this in svn trunk :

  QString str2 = KUrl::decode_string( str );

Tested, it works like in 3.5 branch.
But this is deprecated and I don't have more idea for now.
Moreover, as msn uses unicode, we souldn't use toLatin1 at all I guess.

Well, ideas ?

Gaƫl Beaudoin (gaboo)

_______________________________________________
kopete-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kopete-devel

Reply via email to