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

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

 2010-02-25 04:37:00 来源:WEB开发网   
核心提示:UTF8设置,最好将源文件的文本编码方式改为UTF-8,Symbian S60 平台简体汉字处理浅谈(2),否则Carbide将不按UTF-8编码处理文本,显示将不正常,则必须进行编码转换,但不是转换为UTF-8编码,具体方法如下:1).右键点击工程文件夹的某个资源源文件->properties->Info
UTF8设置,最好将源文件的文本编码方式改为UTF-8,否则Carbide将不按UTF-8编码处理文本,显示将不正常。具体方法如下:

1).右键点击工程文件夹的某个资源源文件->properties->Info,将Text file ecoding改为others中的UTF-8;

2).右键点击工程文件夹->properties->Info,将Text file encoding改为others中的UTF-8。

两者取一即可,只是后一种将使工程所有源文件的文本编码方式变为UTF-8。另外需要注意,Carbide中一旦有文本编码方式的修改,特别是资源源文件,最好重新写入字串,清除(clean)之后再建立应用或运行(build或run),否则上一次的结果仍可能会存在而影响这一次的建立。

二.非UTF-8编码字串

如前所述,如果不以UTF-8编码保存程序源文件,则程序源文件(.cpp)中的字串即为非UTF-8 编码字串。要想正常操作,则必须进行编码转换,但不是转换为UTF-8编码,而是必须转换成Unicode(标准的Unicode也称UTF-16)编码。例如:

_LIT8( KNonUnicodeString, "简体汉字串");

TPtrC8 point8( KNonUnicodeString );

CCnvCharacterSetConverter* characterSetConverter=CCnvCharacterSetConverter::NewLC();

//一般简体中文Windows使用的简体汉字编码是Gb2312或Gbk(ASCII字符集的扩展,也称ASCI字符集)

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();

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

Tags:Symbian 平台

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