LIB-ZC, 一个跨平台(Linux)平台通用C/C++扩展库, 编解码
- 支持 base64, qp, ncr, hex, url
- 命名空间 zcc
base64
void base64_encode(const void *src, int src_size, std::string &str, bool mime_flag = false);
inline void base64_encode(const std::string &src, std::string &str, bool mime_flag = false);
std::string base64_encode(const void *src, int src_size, bool mime_flag = false);
inline std::string base64_encode(const std::string &src, bool mime_flag = false);
void base64_decode(const void *src, int src_size, std::string &str);
inline void base64_decode(const std::string &src, std::string &str);
std::string base64_decode(const void *src, int src_size);
{
return http_token_decode(src.c_str(), src.size());
}
inline std::string base64_decode(const std::string &src)
int base64_decode_get_valid_len(const void *src, int src_size);
int base64_encode_get_min_len(int in_len, bool mime_flag = false);
QP, quoted-printable
void qp_encode_2045(const void *src, int src_size, std::string &result, bool mime_flag = false);
inline void qp_encode_2045(const std::string &src, std::string &result, bool mime_flag = false);
std::string qp_encode_2045(const void *src, int src_size, bool mime_flag = false);
inline std::string qp_encode_2045(const std::string &src, bool mime_flag = false);
void qp_decode_2045(const void *src, int src_size, std::string &str);
inline void qp_decode_2045(const std::string &src, std::string &str);
std::string qp_decode_2045(const void *src, int src_size);
inline std::string qp_decode_2045(const std::string &src);
void qp_encode_2047(const void *src, int src_size, std::string &result);
inline void qp_encode_2047(const std::string &src, std::string &result);
std::string qp_encode_2047(const void *src, int src_size);
inline std::string qp_encode_2047(const std::string &src);
void qp_decode_2047(const void *src, int src_size, std::string &str);
inline void qp_decode_2047(const std::string &src, std::string &str);
std::string qp_decode_2047(const void *src, int src_size);
inline std::string qp_decode_2047(const std::string &src);
int qp_decode_get_valid_len(const void *src, int src_size);
hex
void hex_encode(const void *src, int src_size, std::string &str);
inline void hex_encode(const std::string &src, std::string &str);
std::string hex_encode(const void *src, int src_size);
inline std::string hex_encode(const std::string &src);
void hex_decode(const void *src, int src_size, std::string &str);
inline void hex_decode(const std::string &src, std::string &str);
std::string hex_decode(const void *src, int src_size);
inline std::string hex_decode(const std::string &src);
xml
void xml_unescape_string(const char *data, int len, std::string &content);
inline void xml_unescape_string(std::string &content, const char *data, int len);
std::string xml_unescape_string(const char *data, int len);
ncr
int ncr_decode(int ins, char *wchar);
http url query
void http_token_encode(const void *src, int src_size, std::string &result, bool strict_flag = false);
inline void http_token_encode(const void *src, std::string &result, bool strict_flag = false);_token_encode(src, -1, result, strict_flag);
inline void http_token_encode(const std::string &src, std::string &result, bool strict_flag = false);
std::string http_token_encode(const void *src, int src_size, bool strict_flag = false);
inline std::string http_token_encode(const void *src, bool strict_flag = false);
inline std::string http_token_encode(const std::string &src, bool strict_flag = false);
void http_token_decode(const void *src, int src_size, std::string &result);
inline void http_token_decode(const void *src, std::string &result);
inline void http_token_decode(const std::string &src, std::string &result);
std::string http_token_decode(const void *src, int src_size = -1);
inline std::string http_token_decode(const std::string &src);