MIME和BASE64编码/解码程序代码[VC/C++编程]
本文“MIME和BASE64编码/解码程序代码[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
首先我要在这里向各位改正我犯在一个错误:Base64 只是MIME的一种编码筹划,我本来所说的 MIME 其实是MIME的另一种编码筹划 -- Quoted-Printable ,所以我对本文作了一些改正,并对由此而给大家带来的误导表示歉意. May.6-01
近来在研究 POP3 时碰到一个问题,即此中的中文都是经过 MIME 编码了的,如 MS Outlook Express 是用 Base64 ,而 FoxMail 则用的是QP ,本来想找几个现成的编码/解码的代码,后果只在 UDDF 中找到一个 Delphi的 Base64 Decode ,固然 UDDF 说是Encode/Decode ,但我是没找到 Encode的部份,并且写得不好,只好自已写一个了.
此代码是一个 BCB的单元,非常简单,供应了四个函数,要改成 Delphi 或别的 C/C++ 也很简单,有需求的自已改吧.此代码经过测试,后果精确.
增补:因为不久前有一位用 VC的朋友在引用此代码时出碰到一些艰难,是由于BCB的 AnsiString的特别性造成的,所以我将此代码改写为尺度 C的,本来是应当这样的,但我习惯了用 AnsiString 所以才写成那样的,不过目前只好改写了.但为了便利 Delphi/BCB 利用,我还是分外加了一些东东,详见程序的注释,目的无非是为了更好用一些,别的语言的请自行参考吧.Mar.31-01
再增补:为了使这段程序越发实用,我将其整理为几个单元,辨别用于Delphi和C++Builder .包含对数据流 TMemoryStream 和字符串的处理.可以在本站作品中下载.Aug.14-01
改正:因为不久前一位网友给我发来MAIL说他在用些代码解码邮件附件时出错,我查抄后发现我的解码函数只能处理持续字符串,而普通邮件附件都是带回车的字符串,所以我作了一点点改正,见下面的注释.Apr.03-02
下面是头文件:
//---------------------------------------------------------------------------
// MIME(QP & Base64) Encode/Decode unit. (H)
// Copyright (c) 2000, 02 Mental Studio - http://mental.mentsu.com
// Author : Raptor - raptorz@163.com
//---------------------------------------------------------------------------
#ifndef mimeb64H
#define mimeb64H
//---------------------------------------------------------------------------
#ifdef __cplusplus
extern "C" {
#endif
int QPEncode( char * const aDest, const unsigned char * aSrc, int aLen );
int QPDecode( unsigned char * const aDest, const char * aSrc );
int Base64Encode( char * const aDest, const unsigned char * aSrc, int aLen );
int Base64Decode( unsigned char * const aDest, const char * aSrc );
#ifdef __cplusplus
}
#endif
//---------------------------------------------------------------------------
#endif
以上是“MIME和BASE64编码/解码程序代码[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |