TImCodecB64類是symbian平台下提供的Base64編碼解碼類,你在官方文檔的sdk可能找不到關於Base64編碼解碼類的描述。但是此類確實存在於sdk的開發包中,在這裡給出TImCodecB64類的簡單用法示範。
| Contents [hide]
- 1 範例程式碼
- 2 BASE64編碼
- 3 BASE64解碼
- 4 提示
|
範例程式碼
#include "imcvcodc.h" //base64 聲明標頭檔
static HBufC8* Base64EncodeLC(const TDesC8 & aSourceBuf)
{
TImCodecB64 B64;
//Using base64 the size is increased by 1/3
HBufC8 * buffer = HBufC8::NewL(aSourceBuf.Length() + aSourceBuf.Length()/3);
B64.Initialise();
TPtr8 buffPtr = buffer->Des();
B64.Encode(aSourceBuf, buffPtr);
return buffer;
}
static HBufC8* Base64DecodeLC(const TDesC8 & aSourceBuf)
{
TImCodecB64 B64;
HBufC8 * buffer = HBufC8::NewLC(aSourceBuf.Length());
B64.Initialise();
TPtr8 buffPtr = buffer->Des();
B64.Decode(aSourceBuf, buffPtr);
return buffer;
}
BASE64編碼
//encode string to base64 encoding with clean stack
HBufC8* encodeBuf = StringUtil::Base64EncodeLC(_L8("This is test"));
//Change to TDesC16
HBufC *buff16 = HBufC::NewLC(ptr.Length());
buff16->Des().Copy(ptr);
//Do something....
...
//clean buffer
CleanupStack::PopAndDestroy(2);
結果
VGhpcyBpcyB0ZXN0
BASE64解碼
//Decode base64 encoding with clean stack
HBufC8* decodeBuf = StringUtil::Base64DecodeLC(_L8("VGhpcyBpcyB0ZXN0"));
//Change to TDesC16
HBufC *buff16 = HBufC::NewLC(ptr.Length());
buff16->Des().Copy(ptr);
//Do something
...
//clean buffer
CleanupStack::PopAndDestroy(2);
結果
This is test
提示
除了需要包含"imcvcodc.h"標頭檔外,你還需要在.mmp檔案中加入 imut.lib