18,363
社区成员




bool _url_NeedEncodeA(const char c, UINT uFlag)
{
static const char * pUrlReserveA = ":/?#[]@!$&'()*+,;=%";
static const char * pUrlUnreserveA = "-_.~";
if (c == 0) return true;
if ('a' <= c && c <= 'z') return false;
if ('A' <= c && c <= 'Z') return false;
if ('0' <= c && c <= '9') return false;
if (strchr(pUrlUnreserveA, c) != NULL) return false;
if (uFlag & UrlEF_KeepReserve)
{
if (strchr(pUrlReserveA, c) != NULL)
return false;
}
return true;
}
char szText[] = "中文";
wchar_t* buf = NULL;
int len = MultiByteToWideChar(CP_ACP, 0, szText, -1, buf, 0);
buf = new wchar_t[len];
memset(buf, 0, sizeof(wchar_t)*len);
MultiByteToWideChar(CP_ACP, 0, szText, -1, buf, len);
char* pBuf = NULL;
len = WideCharToMultiByte(CP_UTF8, 0, buf, -1, pBuf, 0, NULL, NULL);
pBuf = new char[len];
WideCharToMultiByte(CP_UTF8, 0, buf, -1, pBuf, len, NULL, NULL);
CString str(_T(""));
CString tmp(_T(""));
for(size_t i=0; i<strlen(pBuf); i++)
{
int nVal = pBuf[i];
tmp.Format(_T("%%%02X"), nVal & 0x000000FF);
str += tmp;
}
AfxMessageBox(str);
delete[] buf;
buf = NULL;
}