#include <rfc2047.hpp>
|
| 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) |
|
|
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) |
|
◆ 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 |
|
) |
| |
该类的文档由以下文件生成: