×
Namespaces

Variants
Actions

Symbian平台下Base64编码及解码

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

文章
chengkai 在 21 Aug 2007 创建
最后由 hamishwillee 在 15 Dec 2011 编辑

TImCodecB64类是symbian平台下提供的Base64编码解码类,你在官方文档的sdk可能找不到关于Base64编码解码类的描述。但是此类确实存在于sdk的开发包中,在这里给出TImCodecB64类的简单用法示范。

Contents

示例代码

#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

This page was last modified on 15 December 2011, at 13:27.
241 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×