WEB开发网
开发学院手机开发Symbian 开发 S60平台简体汉字处理浅谈 阅读

S60平台简体汉字处理浅谈

 2010-07-21 04:21:00 来源:WEB开发网   
核心提示:HBufC8::NewLC( StreamData->Length() ); StreamData8->Des().Copy(*StreamData); TPtrC8 point8( *StreamData8 ); CCnvCharacterSetConverter* characterSetConvert
HBufC8::NewLC( StreamData->Length() ); StreamData8->Des().Copy(*StreamData); TPtrC8 point8( *StreamData8 ); CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC(); if( converter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGbk, iEikonEnv->FsSession()) == CCnvCharacterSetConverter::EAvailable ) { } else if ( characterSetConverter->PrepareToConvertToOrFromL(KCharacterSetIdentifierGb2312, iEikonEnv->FsSession())!= CCnvCharacterSetConverter::EAvailable ) { CleanupStack::PopAndDestroy(); User::Leave( KErrNotSupported ); } TInt state=CCnvCharacterSetConverter::KStateDefault; HBufC* UnicodeString = HBufC::NewL( point8 ); TPtr16 point16 = UnicodeString->Des(); if( CCnvCharacterSetConverter::EErrorIllFormedInput == characterSetConverter->ConvertToUnicode(point16, point8, state ) ) { CleanupStack::PopAndDestroy(); User::Leave(KErrArgument); } CleanupStack::PopAndDestroy(6); //file StreamReadFromFile StreamData StreamData8 characterSetConverter UnicodeString FileServerSession.Close();

得到的UnicodeString可以通过:

CAknInformationNote* InfoNote; InfoNote = new ( ELeave ) CAknInformationNote; InfoNote->ExecuteLD( *UnicodeString );

加以显示验证。

以上代码的集成开发环境为:

Active Perl 5.6.1 build 631

Java Runtime Enviroment v1.5.0_07

CodeWarrior Personal Edition 3.1

S60 3RD EDITION SDK FOR SYMBIAN OS, FOR C++

在以命令行建立的应用中验证正常(WINSCW、GCCE)。如果是其它的建立应用方式或IDE可能需要做相应的变化,或根本不可行,在这里只是给大家提供一种思路和方法。

总之,简体汉字的处理,最重要的在于对字符编码的掌握,说到底就是要依据不同的编码情况进行相应的编码转换操作。最为理想和不受开发环境影响的方法个人认为是:资源文件法,也就是将字符串以UTF-8编码保存在资源源文件中,并设置以UTF-8编码去处理。它最为简便,也最为有效,且便于本地化的移植。其它方法只是提供一种参考,一个可行的方案。

上一页  1 2 3 4 5 6  下一页

Tags:平台 汉字

编辑录入:coldstar [复制链接] [打 印]
赞助商链接