typedef TBuf<60> DfMenuBuf;
CArrayFixFlat<DfMenuBuf>* ParserUTFTxt(const HBufC8* abuf8)const
{
if(abuf8)
{
CArrayFixFlat<DfMenuBuf>* menus=new (ELeave)CArrayFixFlat<DfMenuBuf>(4);
CleanupStack::PushL(menus);
int nsize=abuf8->Size();
unsigned char* dest=(unsigned char*)malloc(nsize+1);
memset(dest,'0',nsize+1);
memcpy(dest,abuf8->Ptr(),nsize);
int pos=0;
int len=0;
TBuf<40> buf16;
TBool isNL;
for(int i=0;i<nsize;i++)
{
isNL=EFalse;
if((i==nsize-1)&&(dest[i]!=0x0A)) // T DD/n
{
isNL=ETrue;
len=nsize-pos;
}
else if(dest[i]==0x0D)// 3μ/r
{
isNL=ETrue;
len=i-pos;
}
if(isNL)
{
unsigned char* sub=(unsigned char*)malloc(len+1);
for(int j=0;j<len;j++)
sub[j]=dest[j+pos];
sub[len]=0;
TPtrC8 buf8(sub);
CnvUtfConverter::ConvertToUnicodeFromUtf8(buf16,buf8);
menus->AppendL(buf16);
pos+=len+2;
free(sub);
}
}
free(dest);
CleanupStack::Pop(menus);
return menus;
}
return NULL;
}
Symbian 中讀取UTF-8編碼本地文件,換行處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.