Symbain下汉字转化成拼音方法总结
1.
包含的库:ptiengine.lib
2.
包含的头文件:#include <ptiengine.h>
3. 使用方法(该方法已经在模拟器上进行测试,真机上未进行测试。)
void ConvertChineseToPinyin(const TDesC& aChineseWord, TDes& aPinyin )
{//该方法只能对一个汉字进行转化,如果是很多汉字的话,需要进行简单的修改就OK了
CPtiEngine* ptiEngine = CPtiEngine::NewL();
CleanupStack::PushL( ptiEngine );
ptiEngine->ActivateLanguageL(ELangPrcChinese);
TInt wordLength = aChineseWord.Length();
for ( TInt j = 0; j < wordLength; j++ )
{
TUint16 iInt16 = aChineseWord[j];
TBuf<3> mid;
mid.Append(aChineseWord.Mid(j, 1));
//表示汉字对应的unicode码表中范围。
if ((iInt16 >= 0x4E00) && (iInt16 <= 0x9FA5))
{
HBufC* pTest = HBufC::NewL(6);
pTest->Des().Append(mid);
const TUint16* nUint = pTest->Des().Ptr();
ptiEngine->GetSpelling( *nUint, aPinyin, EPtiPinyin );
delete pTest;
pTest = NULL;
}
}
ptiEngine->CloseCurrentLanguageL();
CleanupStack::PopAndDestroy( ptiEngine );
}