[개발/VC++] URLEncode, URLDecode, UTF8 변환 소스
IT/개발 2011/02/10 12:05
[개발/VC++] URLEncode, URLDecode, UTF8 변환 소스
아래 소스는 멀티바이트 문자집합 프로젝트 설정으로 작업해야 작동된다.
inline BYTE toHex(const BYTE &x)
{
return x > 9 ? x + 55: x + 48;
}
CString URLEncode(CString sIn)
{
CString sOut;
const int nLen = sIn.GetLength() + 1;
register LPBYTE pOutTmp = NULL;
LPBYTE pOutBuf = NULL;
register LPBYTE pInTmp = NULL;
LPBYTE pInBuf =(LPBYTE)sIn.GetBuffer(nLen);
BYTE b = 0;
//alloc out buffer
pOutBuf = (LPBYTE)sOut.GetBuffer(nLen*3 – 2);//new BYTE [nLen * 3];
if(pOutBuf)
{
pInTmp = pInBuf;
pOutTmp = pOutBuf;
// do encoding
while (*pInTmp)
{
if(isalnum(*pInTmp))
*pOutTmp++ = *pInTmp;
else
if(isspace(*pInTmp))
*pOutTmp++ = ‘+’;
else
{
*pOutTmp++ = ‘%’;
*pOutTmp++ = toHex(*pInTmp>>4);
*pOutTmp++ = toHex(*pInTmp%16);
}
pInTmp++;
}
*pOutTmp = ‘