十万火急,如何实现Server.URLEncode( string )这个函数的功能? 我在VC++6.0中要向web服务器通过url传送中文字符,CodeGuru上的一个程序只是对ASCII中的特殊字符进行了编码,不知中文字符如何处理? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 /*********************************************************************** URL编码函数* 在这里要注意,编译器在处理中文字符时,会自动根据字符的位7来读入一个* 或两个字符,这时可以强制采用unsigned char *来读入一个字符。***********************************************************************/int PubFunc::URLEncode (const char* in, char* out){ if (!in || !out) return 0; for( ; *in != 0; in++) { unsigned char *p=(unsigned char*)in; if (*p == ' ') { *out = '%'; *(out + 1) = '2'; *(out + 2) = '0'; out += 3; } else if (*p == ' ' || *p == '%' || *p == '/' || *p & 0x80) { char a[3]; *out = '%'; sprintf(a, "%02x", *p); *(out + 1) = a[0]; *(out + 2) = a[1]; out += 3; } else { *out = *p; out++; } }//end for *out = 0; return 0; }/*********************************************************************** URL解码函数***********************************************************************/int PubFunc::URLDecode (const char* in, char* out){ if (!in || !out) return 0; for( ; *in != 0; in++) { if(*in == '+') { *out = ' '; out++; } else if(*in == '%') { int code; if (sscanf(in + 1, "%02x", &code) != 1) code = '?'; *out = code; in += 2; out++; } else { *out = *in; out++; } } *out = 0; return 0;} 自己写一个listbox源码 我想从access表中提取一个空的记录,该怎么写? 请教一个关于vc6的联机编译软件 又一个恼火的问题,盼大侠帮忙 请问 COBJECT * (_stacall * m_pgetobject)() CListCtrl的记录标记 自定义类响应mouse右键怎么都不行,高手进来看看!!!!!!up有分!!!第二贴啦 线程函数出错,为什么? 來者有分!!有關 <<C++ PRIMER>> <<Thinking in C++>> VC6.0中,由于计算需要,定义了过多的大数组造成系统内存不足怎么办??? 请教一个关于接收自陷的基本问题 棘手问题, 请高手赐教!
* URL编码函数
* 在这里要注意,编译器在处理中文字符时,会自动根据字符的位7来读入一个
* 或两个字符,这时可以强制采用unsigned char *来读入一个字符。
***********************************************************************/
int PubFunc::URLEncode (const char* in, char* out)
{
if (!in || !out) return 0; for( ; *in != 0; in++)
{
unsigned char *p=(unsigned char*)in; if (*p == ' ')
{
*out = '%';
*(out + 1) = '2';
*(out + 2) = '0';
out += 3;
}
else if (*p == ' ' || *p == '%' || *p == '/' || *p & 0x80)
{
char a[3]; *out = '%';
sprintf(a, "%02x", *p);
*(out + 1) = a[0];
*(out + 2) = a[1];
out += 3;
}
else
{
*out = *p;
out++;
}
}//end for *out = 0; return 0;
}/**********************************************************************
* URL解码函数
***********************************************************************/
int PubFunc::URLDecode (const char* in, char* out)
{
if (!in || !out) return 0; for( ; *in != 0; in++)
{
if(*in == '+')
{
*out = ' ';
out++;
}
else if(*in == '%')
{
int code; if (sscanf(in + 1, "%02x", &code) != 1) code = '?';
*out = code;
in += 2;
out++;
}
else
{
*out = *in;
out++;
}
} *out = 0; return 0;
}