直接贴代码 但是发送中文时 是gb2312的url编码不是utf-8的
/**
* \brief 对url特殊字符进行编码
* \param s 输入字符串
* \param len 输入字符串长度
* \param new_length 输出字符串长度
* \return 输出编码后的url字符串,这段内存再使用完成以后需要释放
*/
std::string urlencode(std::string &str_source)
{
char const *in_str = str_source.c_str();
int in_str_len = strlen(in_str);
int out_str_len = 0;
std::string out_str;
register unsigned char c;
unsigned char *to, *start;
unsigned char const *from, *end;
unsigned char hexchars[] = "0123456789ABCDEF";
from = (unsigned char *)in_str;
end = (unsigned char *)in_str + in_str_len;
start = to = (unsigned char *) malloc(3*in_str_len+1);
while (from < end) {
c = *from++;
if (c == ' ') {
*to++ = '+';
} else if ((c < '0' && c !=