1.短信乱码解决
CSmsSettings& serviceSettings = iSmsMtm->ServiceSettings();
CSmsHeader& header = iSmsMtm->SmsHeader();
serviceSettings.SetDelivery(ESmsDeliveryImmediately);
serviceSettings.SetCharacterSet(TSmsDataCodingScheme::ESmsAlphabetUCS2);
header.SetSmsSettingsL( serviceSettings );
iSmsMtm->RestoreServiceAndSettingsL();
2.其他情况中文乱码,跟所在文件的编码有关:
如果文件编码为UTF-8:CnvUtfConverter::ConvertToUnicodeFromUtf8
如果文件编码为GBK:
ConvertToUnicode(TDesC8& aIn, TDes16& aOut)
{
CCnvCharacterSetConverter* converter=CCnvCharacterSetConverter::NewLC();
// Check if there is conversion between GBK/GB2312 and unicode
// if(converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312,
if(converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk,
CEikonEnv::Static()->FsSession())!=CCnvCharacterSetConverter::EAvailable)
User::Leave(KErrNotSupported);
TInt state=CCnvCharacterSetConverter::KStateDefault;
TPtrC8 source( str );
HBufC* iInfoText = HBufC::NewL( source.Length() );
TPtr16 ptr = iInfoText->Des();
if(CCnvCharacterSetConverter::EErrorIllFormedInput == converter->ConvertToUnicode(aOut, aIn, state))
User::Leave(KErrArgument); //Leave if error in conversion.
CleanupStack::PopAndDestroy(); //clean for converter
}