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

Symbian S60 平台简体汉字处理浅谈

 2010-02-25 04:37:00 来源:WEB开发网   
核心提示:}TInt state=CCnvCharacterSetConverter::KStateDefault;HBufC* UnicodeString = HBufC::NewL( point8 );TPtr16 point16 = UnicodeString->Des();if( CCnvCharacterSetC

}

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编码去处理。它最为简便,也最为有效,且便于本地化的移植。其它方法只是提供一种参考,一个可行的方案。

其实,本文所讨论的方法不仅仅对简体汉字有效,理论上对所有非ANSII标准字符都适用。

补记:字节序标记(Byte Order Mark)

BOM(Byte Order Mark),是在Unicode标准(UTF-16)引入后,对于Unicode纯文本文件判断其比特顺序的标记,在UTF-16 Little Endian字节序下为(0xFF,0xFE),在UTF-16 Big Endian下为(0xFE,0xFF);如果进行相应的UTF-16到UTF-8转换,该处两个字节会被处理成为三个字节的UTF-8编码字节序标记。

上一页  1 2 3 4 5 6 

Tags:Symbian 平台

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