acl  3.5.3.0
acl::rfc2047类 参考

#include <rfc2047.hpp>

+ 类 acl::rfc2047 继承关系图:
+ acl::rfc2047 的协作图:

Public 成员函数

 rfc2047 (bool strip_sp=true, bool addCrlf=true)
 
 ~rfc2047 (void)
 
void decode_update (const char *in, int n)
 
bool decode_finish (const char *to_charset, string *out, bool addInvalid=true)
 
bool encode_update (const char *in, int n, string *out, const char *charset="gb2312", char coding='B')
 
bool encode_finish (string *out)
 
const std::list< rfc2047_entry * > & get_list (void) const
 
void reset (bool strip_sp=true)
 
void debug_rfc2047 (void) const
 
int status_next (const char *s, int n)
 
int status_data (const char *s, int n)
 
int status_charset (const char *s, int n)
 
int status_coding (const char *s, int n)
 
int status_equal_question (const char *s, int n)
 
int status_question_first (const char *s, int n)
 
int status_question_second (const char *s, int n)
 
int status_question_equal (const char *s, int n)
 

静态 Public 成员函数

static bool encode (const char *in, int n, string *out, const char *charset="gb2312", char coding='B', bool addCrlf=true)
 
static bool decode (const char *in, int n, string *out, const char *to_charset="gb2312", bool strip_sp=false, bool addInvalid=true)
 

额外继承的成员函数

- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

详细描述

在文件 rfc2047.hpp20 行定义.

构造及析构函数说明

◆ rfc2047()

acl::rfc2047::rfc2047 ( bool  strip_sp = true,
bool  addCrlf = true 
)

构造函数

参数
strip_sp{bool} 在解码过程中是否去掉回车换行符及每行开头的 空格及TAB
addCrlf{bool} 在编码过程中当数据比较长时是否自动添加 "\r\n"

◆ ~rfc2047()

acl::rfc2047::~rfc2047 ( void  )

成员函数说明

◆ debug_rfc2047()

void acl::rfc2047::debug_rfc2047 ( void  ) const

调试输出解析结果

◆ decode()

static bool acl::rfc2047::decode ( const char *  in,
int  n,
string out,
const char *  to_charset = "gb2312",
bool  strip_sp = false,
bool  addInvalid = true 
)
static

静态解码器

参数
in{const char*} 输入数据地址
n{int} 数据长度
out{string*} 存储解码结果的缓冲区
to_charset{const char*} 目标字符集
strip_sp{bool} 是否去掉回车换行符及每行开头的空格及TAB
addInvalid{bool} 当为 true 时,则转码过程中如果遇到了 非法字符集,则直接拷贝,否则则跳过,默认情况下是直接拷贝
返回
{bool} 解码是否成功

◆ decode_finish()

bool acl::rfc2047::decode_finish ( const char *  to_charset,
string out,
bool  addInvalid = true 
)

rfc2047 解析结果转换成指定的字符集字符串, 如果不能 正确转换则保留源串内容

参数
to_charset{const char*} 目标字符集
out{string*} 存储转换结果
addInvalid{bool} 当为 true 时,则转码过程中如果遇到了 非法字符集,则直接拷贝,否则则跳过,默认情况下是直接拷贝
返回
{bool} 转换是否成功

◆ decode_update()

void acl::rfc2047::decode_update ( const char *  in,
int  n 
)

流式解析数据, 可以循环调用此函数, 每次添加部分数据 直至添加完毕

参数
in{const char*} 输入源字符串
n{int} in 输入串的长度

◆ encode()

static bool acl::rfc2047::encode ( const char *  in,
int  n,
string out,
const char *  charset = "gb2312",
char  coding = 'B',
bool  addCrlf = true 
)
static

静态编码器

参数
in{const char*} 输入数据地址
n{int} 数据长度
out{string*} 存储编码结果的缓冲区
charset{const char*} 输入数据的字符集
coding{char} 编码类型,支持的编码类型有: B: base64, Q: quoted_printable
addCrlf{bool} 在编码过程中当数据比较长时是否自动添加 "\r\n"
返回
{bool} 编码是否成功

◆ encode_finish()

bool acl::rfc2047::encode_finish ( string out)

将 encode_update 添加的数据进行编码后存储于用户指定缓冲区

参数
out{string*} 存储编码结果的用户缓冲区
返回
{bool} 是否成功

◆ encode_update()

bool acl::rfc2047::encode_update ( const char *  in,
int  n,
string out,
const char *  charset = "gb2312",
char  coding = 'B' 
)

rfc2047 编码过程中添加数据

参数
in{const char*} 输入数据
n{int} in 数据长度
out{string*} 存储编码结果
charset{const char*} 输入数据的字符集类型
coding{char} 编码类型,支持的编码类型有: B: base64, Q: quoted_printable
返回
{bool} 检查输入参数是否正确且编码是否成功

◆ get_list()

const std::list<rfc2047_entry*>& acl::rfc2047::get_list ( void  ) const

将解析结果以链表的形式给出

返回
{const std::list<rfc2047_entry*>&}

◆ reset()

void acl::rfc2047::reset ( bool  strip_sp = true)

重置解析器状态后, 该解析器可再次使用

参数
strip_sp{bool} 是否去掉回车换行符及每行开头的空格及TAB

◆ status_charset()

int acl::rfc2047::status_charset ( const char *  s,
int  n 
)

◆ status_coding()

int acl::rfc2047::status_coding ( const char *  s,
int  n 
)

◆ status_data()

int acl::rfc2047::status_data ( const char *  s,
int  n 
)

◆ status_equal_question()

int acl::rfc2047::status_equal_question ( const char *  s,
int  n 
)

◆ status_next()

int acl::rfc2047::status_next ( const char *  s,
int  n 
)

◆ status_question_equal()

int acl::rfc2047::status_question_equal ( const char *  s,
int  n 
)

◆ status_question_first()

int acl::rfc2047::status_question_first ( const char *  s,
int  n 
)

◆ status_question_second()

int acl::rfc2047::status_question_second ( const char *  s,
int  n 
)

该类的文档由以下文件生成: