diff -r 96b99892dd80 -r b4758b4b2d20 XDMSettingsUI/src/XDMPluginSLContainer.cpp --- a/XDMSettingsUI/src/XDMPluginSLContainer.cpp Wed Mar 31 22:15:41 2010 +0300 +++ b/XDMSettingsUI/src/XDMPluginSLContainer.cpp Wed Apr 14 16:22:17 2010 +0300 @@ -36,6 +36,7 @@ #include #include #include +#include #include "XDMPluginSLContainer.h" #include "XDMPluginSettinglist.h" @@ -234,8 +235,31 @@ { iData->iAccessPoint = -1; } - - iData->iUserID = xDMSet->Property(EXdmPropAuthName); + + TBuf username = xDMSet->Property( EXdmPropAuthName ); + + // to show special chars in UI correctly + _LIT( KProcent, "%" ); + if ( username.Find( KProcent ) != KErrNotFound ) + { + // convert to 8 bit + HBufC8* tmp = HBufC8::NewLC( username.Length() ); + tmp->Des().Copy( username ); + + // Decode encoded username + HBufC8* decodedUsername = EscapeUtils::EscapeDecodeL( *tmp ); + CleanupStack::PopAndDestroy( tmp ); + CleanupStack::PushL( decodedUsername ); + + // convert to unicode + HBufC* userName16 = + EscapeUtils::ConvertToUnicodeFromUtf8L( decodedUsername->Des() ); + CleanupStack::PopAndDestroy( decodedUsername ); + username = userName16->Des(); + delete userName16; + } + + iData->iUserID = username; iData->iPassword = xDMSet->Property(EXdmPropAuthSecret); CleanupStack::PopAndDestroy(1); //xDMSet