- 浏览: 268358 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (263)
- mysql (5)
- boost (6)
- 工具 (10)
- IT生活 (7)
- 多线程 (3)
- Ruby (15)
- php (2)
- MongoDB (39)
- 移动互联网 (2)
- 测试 (8)
- c++ (28)
- 书 (1)
- 网站 (3)
- 网络编程 (14)
- 开源软件 (1)
- 分布式计算 (1)
- 得得得 (1)
- php,wordpress (1)
- error (5)
- 编译 (2)
- 学习 (1)
- 杀毒软件 (1)
- dd (0)
- linux (21)
- 数据库 (1)
- STL (1)
- c++/c (5)
- 软件设计 (1)
- 操作系统 (4)
- 库 (2)
- win32 (1)
- s (0)
- openssl (1)
- perl (2)
- debug (1)
- windows (4)
- python (12)
- windows 防火墙 (1)
- vs (1)
- vim (2)
- vc (1)
- 浏览器插件的危害 (1)
- curl (0)
- 判断手机号码合法性的库 (0)
- 地址备注 (0)
- 安装 File::Slurp (1)
- cenos (2)
- shell (1)
- linunx (1)
- internet (1)
- software (1)
- widows (1)
- linux io (1)
- nginx (2)
- 算法 (2)
- google (1)
- protobuf (2)
- tengine (1)
- tools (1)
- lua (2)
- liunx (1)
- vcard (1)
- lua-iconv (1)
- 网络 (2)
- teat (0)
- ldconfig linux (0)
- awk (0)
- grep (0)
- windws (2)
- linux 命令 (1)
- tcp dump (1)
- vmware (1)
- question2answer (2)
- mongdb (1)
- 正则 (1)
- OCR (2)
- Windows Server (1)
最新评论
http://www.cnblogs.com/robinhood/articles/540471.html
Quoted-Printable也是MIME邮件中常用的编码方式之一。同Base64一样,它也将输入的字符串或数据编码成全是ASCII码的可打印字符串。
Quoted-Printable编码的基本方法是:输入数据在33-60、62-126范围内的,直接输出;其它的需编码为“=”加两个字节的HEX码(大写)。为保证输出行不超过规定长度,可在行尾加“=\r\n”序列作为软回车。
int EncodeQuoted(const unsigned char* pSrc, char* pDst, int nSrcLen, int nMaxLineLen)
{
int nDstLen; // 输出的字符计数
int nLineLen; // 输出的行长度计数
nDstLen = 0;
nLineLen = 0;
for (int i = 0; i < nSrcLen; i++, pSrc++)
{
// ASCII 33-60, 62-126原样输出,其余的需编码
if ((*pSrc >= '!') && (*pSrc <= '~') && (*pSrc != '='))
{
*pDst++ = (char)*pSrc;
nDstLen++;
nLineLen++;
}
else
{
sprintf(pDst, "=%02X", *pSrc);
pDst += 3;
nDstLen += 3;
nLineLen += 3;
}
// 输出换行?
if (nLineLen >= nMaxLineLen - 3)
{
sprintf(pDst, "=\r\n");
pDst += 3;
nDstLen += 3;
nLineLen = 0;
}
}
// 输出加个结束符
*pDst = '\0';
return nDstLen;
}
Quoted-Printable解码很简单,将编码过程反过来就行了。
int DecodeQuoted(const char* pSrc, unsigned char* pDst, int nSrcLen)
{
int nDstLen; // 输出的字符计数
int i;
i = 0;
nDstLen = 0;
while (i < nSrcLen)
{
if (strncmp(pSrc, "=\r\n", 3) == 0) // 软回车,跳过
{
pSrc += 3;
i += 3;
}
else
{
if (*pSrc == '=') // 是编码字节
{
sscanf(pSrc, "=%02X", pDst);
pDst++;
pSrc += 3;
i += 3;
}
else // 非编码字节
{
*pDst++ = (unsigned char)*pSrc++;
i++;
}
nDstLen++;
}
}
// 输出加个结束符
*pDst = '\0';
return nDstLen;
}
Quoted-Printable也是MIME邮件中常用的编码方式之一。同Base64一样,它也将输入的字符串或数据编码成全是ASCII码的可打印字符串。
Quoted-Printable编码的基本方法是:输入数据在33-60、62-126范围内的,直接输出;其它的需编码为“=”加两个字节的HEX码(大写)。为保证输出行不超过规定长度,可在行尾加“=\r\n”序列作为软回车。
int EncodeQuoted(const unsigned char* pSrc, char* pDst, int nSrcLen, int nMaxLineLen)
{
int nDstLen; // 输出的字符计数
int nLineLen; // 输出的行长度计数
nDstLen = 0;
nLineLen = 0;
for (int i = 0; i < nSrcLen; i++, pSrc++)
{
// ASCII 33-60, 62-126原样输出,其余的需编码
if ((*pSrc >= '!') && (*pSrc <= '~') && (*pSrc != '='))
{
*pDst++ = (char)*pSrc;
nDstLen++;
nLineLen++;
}
else
{
sprintf(pDst, "=%02X", *pSrc);
pDst += 3;
nDstLen += 3;
nLineLen += 3;
}
// 输出换行?
if (nLineLen >= nMaxLineLen - 3)
{
sprintf(pDst, "=\r\n");
pDst += 3;
nDstLen += 3;
nLineLen = 0;
}
}
// 输出加个结束符
*pDst = '\0';
return nDstLen;
}
Quoted-Printable解码很简单,将编码过程反过来就行了。
int DecodeQuoted(const char* pSrc, unsigned char* pDst, int nSrcLen)
{
int nDstLen; // 输出的字符计数
int i;
i = 0;
nDstLen = 0;
while (i < nSrcLen)
{
if (strncmp(pSrc, "=\r\n", 3) == 0) // 软回车,跳过
{
pSrc += 3;
i += 3;
}
else
{
if (*pSrc == '=') // 是编码字节
{
sscanf(pSrc, "=%02X", pDst);
pDst++;
pSrc += 3;
i += 3;
}
else // 非编码字节
{
*pDst++ = (unsigned char)*pSrc++;
i++;
}
nDstLen++;
}
}
// 输出加个结束符
*pDst = '\0';
return nDstLen;
}
发表评论
-
c++ 读取unicode文档
2015-02-09 16:12 961int ReadOneNameFile(char *fil ... -
http://curl.haxx.se/
2013-06-13 17:41 0http://curl.haxx.se/ -
[转]线程本地存储(Thread Local Storage, TLS)分析与使用
2013-05-03 16:53 808线程本地存储(Thread Local Storage, TL ... -
C/C++获得windows版本
2012-12-01 11:05 1465MSDN上有详细介绍,做个标记: #include & ... -
[转]异常处理与MiniDump详解(4) MiniDump
2012-10-24 14:46 965异常处理与MiniDump详解(4) MiniDump wri ... -
禁用系统硬错误消息对话框
2012-08-31 19:14 721http://support.microsoft.com/kb ... -
Application Crash Dump Analysis (Windows 7)
2012-08-28 09:39 0Application Crash Dump Analysis ... -
如何成为一个windows程序debug高手
2012-08-18 14:40 0minidump: http://blog.csdn.ne ... -
Boost库编译后命名方式
2012-05-17 10:29 1347Boost官网的《Geting Started ... -
geoIP
2012-05-14 12:38 0http://www.oschina.net/code/sni ... -
vs2010 断点 无法命中
2012-05-07 16:13 1356这种情况不解决办法有 很多。你这个方法我没用过。最简单的方法就 ... -
$err,hr
2012-05-04 20:43 915在Visual C++ 中,可以在监视窗口添加 $err,hr ... -
WINDOWS下线程同步探讨
2012-04-11 15:04 947概述 线程同步可 ... -
undefined reference to 'pthread_create'问题解决
2012-03-30 11:43 0由于是Linux新手,所以现在才开始接触线程编程,照着GUN/ ... -
linux 下 遍历文件夹下的内容
2012-03-29 19:43 0// only works in cpp #ifdef __c ... -
浅谈ReadDirectoryChangesW函数的作用和问题所在
2012-03-23 10:32 4325转自:http://www.cnblogs.com ... -
用 _findfirst 和 _findnext 查找文件,遍历文件夹
2012-03-30 11:39 2020标签: _findfirst _findnext 杂谈 分类: ... -
我的广告
2012-03-19 10:57 0http://www.webweb.com/signup.as ... -
服务器多服务器设置
2012-03-12 18:01 753当服务器功能比较多时,可以抽象出一个代理,将不同的服务 ... -
记录个函数 strstr
2012-03-10 11:30 1037包含文件:string.h 函数名: strstr 函 ...
相关推荐
Quoted-printable编码是一种用于电子邮件传输中的字符编码方案,它允许文本包含一些非ASCII字符,同时保持邮件的可读性。Quoted-printable编码利用可打印的ASCII字符来表示原始数据中可能无法直接显示的字节,尤其是...
C# Quoted-Printable编码与解码是邮件传输标准中处理非ASCII字符的一种编码方式,它广泛应用于电子邮件系统中。Quoted-Printable编码格式能够让普通文本邮件中包含非ASCII字符,同时保持邮件的可读性和兼容性。在C#...
Quoted_Printable编码是一种在电子邮件和网页中常见的字符编码方式,用于在ASCII字符集中表示非ASCII字符,确保数据在传输过程中不会被误解或丢失。这种编码方式特别适用于7位ASCII字符集不能涵盖的字符,例如某些...
`quoted-printable`编码就是这样的一个方法,它是RFC 2045和RFC 2047中定义的一种编码方式,主要用于在邮件主体中保持可读性。 `quoted-printable`编码的主要目的是将非ASCII字符转换为ASCII,确保邮件内容在传输...
Quoted-Printable编码通过在每个可打印字符前添加等号(=)来表示,对于非ASCII字符,会将其转换为ASCII的十六进制表示形式,例如,空格会被编码为"=20"。这种编码方式通常用于包含大量可打印字符的文本数据,如HTML...
在"常用编码VBA.zip"这个压缩包中,包含了一系列用于处理不同编码方式的VBA宏,如Base64编码、Quoted-Printable编码、URL编码、UTF8编码和Unicode编码。 1. **Base64编码**:Base64是一种用64个字符来表示任意二...
Quoted-Printable编码的基本方法是:输入数据在33-60、62-126范围内的,直接输出;其它的需编码为“=”加两个字节的HEX码(大写)。为保证输出行不超过规定长度,可在行尾加“=\r\n”序列作为软回车。
总的来说,易语言的Quoted_Printable编码解码源码提供了学习和应用字符编码技术的一个实例,通过理解并实践这个例子,我们可以更好地掌握易语言的字符串处理技巧,并且加深对编码解码原理的理解。同时,这也是一个很...
本demo源代码主要关注的是在处理中文字符时的编码问题,特别是使用Quoted-Printable编码来确保中文字符在传输过程中的正确性。 Quoted-Printable编码是Internet编码的一种,常用于包含非ASCII字符的数据,例如邮件...
Base64和Quoted-Printable编码是两种常见的数据编码方式,它们被广泛应用于网络通信、电子邮件、文本传输等领域,以确保数据在不同系统间安全、正确地传递。 Base64编码是一种基于64个字符的编码方法,这64个字符...
在易语言中,理解和实现Quoted_Printable编码与解码是提高程序处理文本信息能力的重要一环。 Quoted_Printable 编码的基本原理是将每个8位的字节拆分为7位的ASCII字符,对于那些不能直接作为ASCII字符的字节,通常...
用途:使用excel编辑联系人,导出vcf文件 ------------------------------------------------------------ ...4、支持备注QUOTED-PRINTABLE编码解码 5、支持项目多值(多个工作电话号码,传真,QQ等)
接着是Quoted-Printable编码,这是另一种常见的电子邮件编码方式,主要用于在文本邮件中保持可读性。它将非ASCII字符或可能在传输过程中被误解的字符替换为其等效的十六进制值,并在每个字符前加上等号(=)。Quoted...
本文总结了CTF中常见的编码和加密方法,涵盖了ASCII编码、Base64/32/16编码、shellcode编码、Quoted-printable编码、XXencode编码、UUencode编码、URL编码、Unicode编码、Escape/Unescape编码、HTML实体编码、敲击码...
MHT文件中的内容可能采用了Quoted-Printable编码方式来表示非ASCII字符。因此,在处理之前需要对其进行解码。 ```java public static String decodeQuotedPrintable(String str, String encoding) { // 实现Quoted...
VCF(Virtual Contact File)是一种常见的用于存储个人数字助手(PDA)或电子邮箱系统中的联系人信息的文件格式。它是由Internet工程任务组(IETF)定义的标准,以XML为基础,用来方便地交换联系人数据。...
根据提供的文件信息,本文将详细解析“用C写的电子邮件解码程序”中涉及的主要编码算法:Base64、Quoted-Printable、7bit 和 8bit 的解码原理及其实现方法。 ### 一、Base64 解码 #### 1.1 基本概念 Base64 是一种...
《UTF-8与GB2312编码转换在电话本管理中的应用》 在数字化信息时代,字符编码标准是确保不同设备和系统间数据交换的关键因素。本文将深入探讨两个常见的中文字符编码——UTF-8和GB2312,并以三星手机电话本为例,...
提供关于E-Mail信体的基本编码和解码方法包括 Base64, UUCode, Quoted-Printble编解码速度快 全兼容Outlook Express 部分关键代码说明 全部类静态方法 毋需创建实例即可使用 使用说明 首先使用CMailCoder提供的获取...
- **编码与字符集**:如`Content-Transfer-Encoding: quoted-printable`表明邮件内容使用了Quoted-Printable编码,`charset="GB2312"`指定了字符集为简体中文GB2312。 - **邮件体**:邮件体可以包含编码后的文本或...