关于outlook中邮件的64base编码

happyfloat 2002-04-01 01:52:02
向高手请教有关关于outlook中邮件的64base编码。是否能告诉我编码对应的映射表。谢谢!
...全文
292 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
thorkhan 2002-04-20
  • 打赏
  • 举报
回复
Base64﹑Quoted-Printable的MIME格式的編碼規范參考
http://rfc.sunsite.dk/rfc/rfc2045.html
http://rfc.sunsite.dk/rfc/rfc2046.html
hzy_csdn 2002-04-08
  • 打赏
  • 举报
回复
变换码表有多种,反正BASE64、UUENCODE等都有多种不同的码表
hzy_csdn 2002-04-04
  • 打赏
  • 举报
回复
四三变换,把二进制数据的8bit变成6bit,好象是0x20--0x60等,即可见字符,3个8bit 变成 4个6bit字节。
huqiming 2002-04-03
  • 打赏
  • 举报
回复
http://www.vchelp.net/source/uu_mime_base64_decode.zip
dragonki 2002-04-03
  • 打赏
  • 举报
回复
这是c++ builder的源码
//---------------------------------------------------------------------------
// Base64 code table
// 0-63 : A-Z(25) a-z(51), 0-9(61), +(62), /(63)
char __fastcall Base2Chr( Byte n )
{
n &= 0x3F;
if ( n < 26 )
return ( char )( n + 'A' );
else if ( n < 52 )
return ( char )( n - 26 + 'a' );
else if ( n < 62 )
return ( char )( n - 52 + '0' );
else if ( n == 62 )
return '+';
else
return '/';
}
//---------------------------------------------------------------------------
Byte Chr2Base( char c )
{
if ( c >= 'A' && c <= 'Z' )
return ( Byte )( c - 'A' );
else if ( c >= 'a' && c <= 'z' )
return ( Byte )( c - 'a' + 26 );
else if ( c >= '0' && c <= '9' )
return ( Byte )( c - '0' + 52 );
else if ( c == '+' )
return 62;
else
return 63;
}
AnsiString Base64Encode( AnsiString s )
{
int n = s.Length( );
Byte c, t;
AnsiString asTemp = "";

for ( int i = 1; i <= n; i++ )
{
c = s[i];
if ( i % 3 == 1 )
{
asTemp += Base2Chr( c >> 2 );
t = ( c << 4 ) & 0x3F;
}
else if ( i % 3 == 2 )
{
asTemp += Base2Chr( t | ( c >> 4 ) );
t = ( c << 2 ) & 0x3F;
}
else
{
asTemp += Base2Chr( t | ( c >> 6 ) );
asTemp += Base2Chr( c );
}
}
if ( n % 3 != 0 )
{
asTemp += Base2Chr( t );
if ( n % 3 == 1 )
asTemp += "==";
else
asTemp += "=";
}
return asTemp;
}
//---------------------------------------------------------------------------
//
AnsiString Base64Decode( AnsiString s )
{
int n = s.Length( );
Byte c, t;
AnsiString asTemp = "";

for ( int i = 1; i <= n; i++ )
{
if ( s[i] == '=' )
break;
c = Chr2Base( s[i] );
if ( i % 4 == 1 )
t = c << 2;
else if ( i % 4 == 2 )
{
asTemp += ( char )( t | ( c >> 4 ) );
t = ( Byte )( c << 4 );
}
else if ( i % 4 == 3 )
{
asTemp += ( char )( t | ( c >> 2 ) );
t = ( Byte )( c << 6 );
}
else
asTemp += ( char )( t | c );
}
return asTemp;
}

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧