Symbian Base64 编码、解码
来源:互联网 发布:淘宝商家入驻条件费用 编辑:程序博客网 时间:2024/06/05 17:22
Symbian中提供了, 相关的类对其进行操作。 我是用统提供的API进行操作:
/*
============================================================================
Name : Base64Handler.h
Author : Nobile.Amir
Version : 1.0
Copyright : Your copyright notice
Description : CBase64Handler declaration
============================================================================
*/
#ifndef __BASE64HANDLER_H__
#define __BASE64HANDLER_H__
#include <e32std.h>
#include <e32base.h>
#include <imcvcodc.h>
class CBase64Handler : public CBase
{
public:
~CBase64Handler();
static CBase64Handler* NewL();
static CBase64Handler* NewLC();
HBufC8* Base64EncodeLC(const TDesC8 & aSourceBuf);
HBufC8* Base64DecodeLC(const TDesC8 & aSourceBuf);
HBufC8* Base64EncodeLC(const TDesC16 & aSourceBuf);
private:
CBase64Handler();
void ConstructL();
HBufC8 * buffer;
HBufC8 * buffer8;
HBufC8 * buffer16;
};
#endif // __BASE64HANDLER_H__
/*
============================================================================
Name : Base64Handler.cpp
Author : Nobile.Amir
Version : 1.0
Copyright : Your copyright notice
Description : CBase64Handler implementation
============================================================================
*/
#include "Base64Handler.h"
CBase64Handler::CBase64Handler()
{
}
CBase64Handler::~CBase64Handler()
{
if( buffer != NULL )
{
delete buffer;
buffer = NULL;
}
if( buffer8 != NULL )
{
delete buffer8;
buffer8 = NULL;
}
if( buffer16 != NULL )
{
delete buffer16;
buffer16 = NULL;
}
}
CBase64Handler* CBase64Handler::NewLC()
{
CBase64Handler* self = new (ELeave) CBase64Handler();
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CBase64Handler* CBase64Handler::NewL()
{
CBase64Handler* self = CBase64Handler::NewLC();
CleanupStack::Pop();
return self;
}
void CBase64Handler::ConstructL()
{
}
HBufC8* CBase64Handler::Base64EncodeLC( const TDesC8 & aSourceBuf )
{
TImCodecB64 B64;
buffer8 = HBufC8::NewL( aSourceBuf.Length() + aSourceBuf.Length()/3 );
B64.Initialise();
TPtr8 buffPtr = buffer8->Des();
B64.Encode( aSourceBuf, buffPtr );
return buffer8;
}
HBufC8* CBase64Handler::Base64DecodeLC( const TDesC8 & aSourceBuf )
{
TImCodecB64 B64;
buffer = HBufC8::NewLC( aSourceBuf.Length() );
B64.Initialise();
TPtr8 buffPtr = buffer->Des();
B64.Decode( aSourceBuf, buffPtr );
return buffer;
}
HBufC8* CBase64Handler::Base64EncodeLC( const TDesC16 & aSourceBuf )
{
buffer16 = HBufC8::NewLC( aSourceBuf.Length() );
buffer16->Des().Copy( aSourceBuf );
return Base64EncodeLC( *buffer16 );
}
/********************************************************************/
CBase64Handler* Handler = CBase64Handler::NewL();
HBufC8* encodeBuf = Handler->Base64EncodeLC(_L("this is test!"));
HBufC *enbuff16 = HBufC::NewLC( (*encodeBuf).Length() );
enbuff16->Des().Copy( *encodeBuf );
console->Write( enbuff16->Des() );
console->Write( _L("/r/n") );
HBufC8* decodeBuf = Handler->Base64DecodeLC( ( *encodeBuf ) );
HBufC *debuff16 = HBufC::NewLC( (*decodeBuf).Length() );
debuff16->Des().Copy( *decodeBuf );
console->Write( debuff16->Des() );
console->Write( _L("/r/n") );
CleanupStack::PopAndDestroy(4);
- Symbian Base64 编码、解码
- Symbian平台下Base64编码及解码
- Symbian Base64编码与解码的简单实现
- base64编码和解码
- base64编码/解码
- BASE64编码和解码
- Base64编码解码
- Base64编码与解码
- Base64编码及解码
- BASE64编码与解码
- BASE64编码与解码
- Base64编码/解码模块
- base64编码/解码
- Base64编码/解码模块
- base64编码解码函数
- BASE64编码解码算法
- base64编码/解码 javascript
- base64编码/解码 javascript
- 用Tomcat 的SSO实现
- linux下JDK和Tomcat的安装
- JavaBean布尔变量的命令方法
- oracle mutex
- SQL server 2005基于已存在的表创建分区
- Symbian Base64 编码、解码
- 04 函数Function
- 为什么我们从现在开始就应该写博客?
- try catch reutrn finally之间的执行顺序
- 电子商务类站点终极资源大全(中)
- 物料成本来源
- J2me Game开发技巧:手机游戏中声音播放及处理
- 用VC++开发数据库应用程序(三)
- session详解(转)