On Sunday 07 October 2007 10:31:01 pm Gael Beaudoin wrote:
> 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)

QUrl::toPercentEncoding( str.toUtf8() );
-- 
Matt
_______________________________________________
kopete-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kopete-devel

Reply via email to