青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 298  文章 - 377  trackbacks - 0
<2008年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

留言簿(34)

隨筆分類

隨筆檔案

文章檔案

相冊

收藏夾

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

VC URLEncode & UrlDecode
 
#define IsHexNum(c) ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f'))

CString Utf8ToStringT(LPSTR str)
{
    _ASSERT(str);
    USES_CONVERSION;
    WCHAR 
*buf;
    
int length = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);
    buf 
= new WCHAR[length+1];
    ZeroMemory(buf, (length
+1* sizeof(WCHAR));
    MultiByteToWideChar(CP_UTF8, 
0, str, -1, buf, length);

    
return (CString(W2T(buf)));
}

/*
CString UrlDecode(LPCTSTR url)
{
    _ASSERT(url);
    USES_CONVERSION;
    LPSTR _url = T2A(const_cast<LPTSTR>(url));
    int i = 0;
    int length = (int)strlen(_url);
    CHAR *buf = new CHAR[length];
    ZeroMemory(buf, length);
    LPSTR p = buf;
    while(i < length)
    {
        if(i <= length -3 && _url[i] == '%' && IsHexNum(_url[i+1]) && IsHexNum(_url[i+2]))
        {
            sscanf(_url + i + 1, "%x", p++);
            i += 3;
        }
        else
        {
            *(p++) = _url[i++];
        }
    }
    //return Utf8ToStringT(buf);
    return CString(buf);
}
*/

CString UrlDecode(LPCTSTR url)
{
    _ASSERT(url);
    USES_CONVERSION;
    LPSTR _url 
= T2A(const_cast<LPTSTR>(url));
    
int i = 0;
    
int length = (int)strlen(_url);
    CHAR 
*buf = new CHAR[length];
    ZeroMemory(buf, length);
    LPSTR p 
= buf;
    
char tmp[4];
    
while(i < length)
    
{
        
if(i <= length -3 && _url[i] == '%' && IsHexNum(_url[i+1]) && IsHexNum(_url[i+2]))
        
{
            memset(tmp, 
0sizeof(tmp));
            memcpy(tmp, _url 
+ i + 1,2); 
            sscanf(tmp, 
"%x", p++);
            i 
+= 3;
        }

        
else
        
{
            
*(p++= _url[i++];
        }

    }

    
return Utf8ToStringT(buf);
}


void ConvertUtf8ToGBK(CString& strUtf8) 
{
    
int len=MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, NULL,0);
    unsigned 
short * wszGBK = new unsigned short[len+1];
    memset(wszGBK, 
0, len * 2 + 2);
    MultiByteToWideChar(CP_UTF8, 
0, (LPCTSTR)strUtf8, -1, wszGBK, len);
    len 
= WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
    
char *szGBK=new char[len + 1];
    memset(szGBK, 
0, len + 1);
    WideCharToMultiByte (CP_ACP, 
0, wszGBK, -1, szGBK, len, NULL,NULL);

    strUtf8 
= szGBK;
    delete[] szGBK;
    delete[] wszGBK;
}


void ConvertGBKToUtf8(CString& strGBK)
{
    
int len=MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strGBK, -1, NULL,0);
    unsigned 
short * wszUtf8 = new unsigned short[len+1];
    memset(wszUtf8, 
0, len * 2 + 2);
    MultiByteToWideChar(CP_ACP, 
0, (LPCTSTR)strGBK, -1, wszUtf8, len);

    len 
= WideCharToMultiByte(CP_UTF8, 0, wszUtf8, -1, NULL, 0, NULL, NULL);
    
char *szUtf8=new char[len + 1];
    memset(szUtf8, 
0, len + 1);
    WideCharToMultiByte (CP_UTF8, 
0, wszUtf8, -1, szUtf8, len, NULL,NULL);

    strGBK 
= szUtf8;
    delete[] szUtf8;
    delete[] wszUtf8;
}


void UTF_8ToUnicode(WCHAR* pOut,char *pText)
{
    
char* uchar = (char *)pOut;
 
    uchar[
1= ((pText[0& 0x0F<< 4+ ((pText[1>> 2& 0x0F);
    uchar[
0= ((pText[1& 0x03<< 6+ (pText[2& 0x3F);
 
    
return;
}


// Unicode 轉(zhuǎn)換成UTF-8  
void UnicodeToUTF_8(char* pOut,WCHAR* pText)
{
    
// 注意 WCHAR高低字的順序,低字節(jié)在前,高字節(jié)在后
    char* pchar = (char *)pText;
 
    pOut[
0= (0xE0 | ((pchar[1& 0xF0>> 4));
    pOut[
1= (0x80 | ((pchar[1& 0x0F<< 2)) + ((pchar[0& 0xC0>> 6);
    pOut[
2= (0x80 | (pchar[0& 0x3F));
 
    
return;
}


// 把Unicode 轉(zhuǎn)換成 GB2312  
void UnicodeToGB2312(char* pOut,unsigned short uData)
{
    WideCharToMultiByte(CP_ACP,NULL,
&uData,1,pOut,sizeof(WCHAR),NULL,NULL);
    
return;
}
   

// GB2312 轉(zhuǎn)換成 Unicode
void Gb2312ToUnicode(WCHAR* pOut,char *gbBuffer)
{
    ::MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,gbBuffer,
2,pOut,1);
    
return;
}


//GB2312 轉(zhuǎn)為 UTF-8
void GB2312ToUTF_8(CString& pOut,char *pText, int pLen)
{
    
char buf[1024];
    
char* rst = new char[pLen + (pLen >> 2+ 2];
 
    memset(buf,
0,1024);
    memset(rst,
0,pLen + (pLen >> 2+ 2);
 
    
int i = 0;
    
int j = 0;   
    
while(i < pLen)
    
{
        
//如果是英文直接復(fù)制就可以
        if*(pText + i) >= 0)
        
{
            rst[j
++= pText[i++];
        }

        
else
        
{
            WCHAR pbuffer;
            Gb2312ToUnicode(
&pbuffer,pText+i);

            UnicodeToUTF_8(buf,
&pbuffer);

            unsigned 
short int tmp = 0;
            tmp 
= rst[j] = buf[0];
            tmp 
= rst[j+1= buf[1];
            tmp 
= rst[j+2= buf[2];

            j 
+= 3;
            i 
+= 2;
        }

    }

    strcpy(
&rst[j],"\0");
 
    
//返回結(jié)果
    pOut = rst;   
    delete []rst;   

    
return;
}


//UTF-8 轉(zhuǎn)為 GB2312
void UTF_8ToGB2312(CString &pOut, char *pText, int pLen)
{
    
char * newBuf = new char[pLen];
    
char Ctemp[4];
    memset(Ctemp,
0,4);
 
    
int i =0;
    
int j = 0;
 
    
while(i < pLen)
    
{
        
if(pText[i] > 0)
        
{
            newBuf[j
++= pText[i++];   
        }

        
else   
        
{
            WCHAR Wtemp;
            UTF_8ToUnicode(
&Wtemp,pText + i);

            UnicodeToGB2312(Ctemp,Wtemp);

            newBuf[j] 
= Ctemp[0];
            newBuf[j 
+ 1= Ctemp[1];

            i 
+= 3;   
            j 
+= 2;   
        }

    }

    strcpy(
&newBuf[j],"\0");
 
    pOut 
= newBuf;
    delete []newBuf;
 
    
return;  
}



CString UTF8_Encode(LPTSTR strUnicode)   
{   
    
long TLen ;   
    CString UTF8_EncodeLong ;   

    TLen 
= CString(strUnicode).GetLength() ;   

    
if(TLen == 0)   
    
{   
        
return CString(strUnicode);   
    }
   

    
long lngBufferSize ;   
    
long lngResult ;   

    
//Set buffer for longest possible string.   
    lngBufferSize = TLen * 3 + 1 ;   
    
char *bytUtf8 = new char[lngBufferSize] ;   

    
//Translate using code page 65001(UTF-8).   

    lngResult 
= WideCharToMultiByte(CP_UTF8, 0, (unsigned short*)strUnicode, TLen, bytUtf8, lngBufferSize, NULL, 0) ;   

    bytUtf8[lngResult] 
= NULL ;   

    
return CString(bytUtf8) ;
}

/*************************************************************************/
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 = '\0';
//sOut=pOutBuf;
//delete [] pOutBuf;
sOut.ReleaseBuffer();
}

sIn.ReleaseBuffer();
return sOut;
}

 

http://blog.csdn.net/leechiyang/archive/2008/02/22/2112915.aspx

http://blog.csdn.net/zhengyun_ustc/archive/2002/05/20/12654.aspx

URLEncode:
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 = '\0';
//sOut=pOutBuf;
//delete [] pOutBuf;
sOut.ReleaseBuffer();
}
sIn.ReleaseBuffer();
return sOut;
}

 

UrlDecode:
#define IsHexNum(c) ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f'))

CString Utf8ToStringT(LPSTR str)
{
_ASSERT(str);
USES_CONVERSION;
WCHAR *buf;
int length = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);
buf = new WCHAR[length+1];
ZeroMemory(buf, (length+1) * sizeof(WCHAR));
MultiByteToWideChar(CP_UTF8, 0, str, -1, buf, length);

return (CString(W2T(buf)));
}

CString UrlDecode(LPCTSTR url)
{
_ASSERT(url);
USES_CONVERSION;
LPSTR _url = T2A(const_cast<LPTSTR>(url));
int i = 0;
int length = (int)strlen(_url);
CHAR *buf = new CHAR[length];
ZeroMemory(buf, length);
LPSTR p = buf;
while(i < length)
{
if(i <= length -3 && _url[i] == '%' && IsHexNum(_url[i+1]) && IsHexNum(_url[i+2]))
{
sscanf(_url + i + 1, "%x", p++);
i += 3;
}
else
{
*(p++) = _url[i++];
}
}
return Utf8ToStringT(buf);

#define IsHexNum(c) ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f'))

CString Utf8ToStringT(LPSTR str)
{
    _ASSERT(str);
    USES_CONVERSION;
    WCHAR 
*buf;
    
int length = MultiByteToWideChar(CP_UTF8, 0, str, -1, NULL, 0);
    buf 
= new WCHAR[length+1];
    ZeroMemory(buf, (length
+1* sizeof(WCHAR));
    MultiByteToWideChar(CP_UTF8, 
0, str, -1, buf, length);

    
return (CString(W2T(buf)));
}

/*
CString UrlDecode(LPCTSTR url)
{
    _ASSERT(url);
    USES_CONVERSION;
    LPSTR _url = T2A(const_cast<LPTSTR>(url));
    int i = 0;
    int length = (int)strlen(_url);
    CHAR *buf = new CHAR[length];
    ZeroMemory(buf, length);
    LPSTR p = buf;
    while(i < length)
    {
        if(i <= length -3 && _url[i] == '%' && IsHexNum(_url[i+1]) && IsHexNum(_url[i+2]))
        {
            sscanf(_url + i + 1, "%x", p++);
            i += 3;
        }
        else
        {
            *(p++) = _url[i++];
        }
    }
    //return Utf8ToStringT(buf);
    return CString(buf);
}
*/

CString UrlDecode(LPCTSTR url)
{
    _ASSERT(url);
    USES_CONVERSION;
    LPSTR _url 
= T2A(const_cast<LPTSTR>(url));
    
int i = 0;
    
int length = (int)strlen(_url);
    CHAR 
*buf = new CHAR[length];
    ZeroMemory(buf, length);
    LPSTR p 
= buf;
    
char tmp[4];
    
while(i < length)
    
{
        
if(i <= length -3 && _url[i] == '%' && IsHexNum(_url[i+1]) && IsHexNum(_url[i+2]))
        
{
            memset(tmp, 
0sizeof(tmp));
            memcpy(tmp, _url 
+ i + 1,2); 
            sscanf(tmp, 
"%x", p++);
            i 
+= 3;
        }

        
else
        
{
            
*(p++= _url[i++];
        }

    }

    
return Utf8ToStringT(buf);
}


void ConvertUtf8ToGBK(CString& strUtf8) 
{
    
int len=MultiByteToWideChar(CP_UTF8, 0, (LPCTSTR)strUtf8, -1, NULL,0);
    unsigned 
short * wszGBK = new unsigned short[len+1];
    memset(wszGBK, 
0, len * 2 + 2);
    MultiByteToWideChar(CP_UTF8, 
0, (LPCTSTR)strUtf8, -1, wszGBK, len);
    len 
= WideCharToMultiByte(CP_ACP, 0, wszGBK, -1, NULL, 0, NULL, NULL);
    
char *szGBK=new char[len + 1];
    memset(szGBK, 
0, len + 1);
    WideCharToMultiByte (CP_ACP, 
0, wszGBK, -1, szGBK, len, NULL,NULL);

    strUtf8 
= szGBK;
    delete[] szGBK;
    delete[] wszGBK;
}


void ConvertGBKToUtf8(CString& strGBK)
{
    
int len=MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)strGBK, -1, NULL,0);
    unsigned 
short * wszUtf8 = new unsigned short[len+1];
    memset(wszUtf8, 
0, len * 2 + 2);
    MultiByteToWideChar(CP_ACP, 
0, (LPCTSTR)strGBK, -1, wszUtf8, len);

    len 
= WideCharToMultiByte(CP_UTF8, 0, wszUtf8, -1, NULL, 0, NULL, NULL);
    
char *szUtf8=new char[len + 1];
    memset(szUtf8, 
0, len + 1);
    WideCharToMultiByte (CP_UTF8, 
0, wszUtf8, -1, szUtf8, len, NULL,NULL);

    strGBK 
= szUtf8;
    delete[] szUtf8;
    delete[] wszUtf8;
}


void UTF_8ToUnicode(WCHAR* pOut,char *pText)
{
    
char* uchar = (char *)pOut;
 
    uchar[
1= ((pText[0& 0x0F<< 4+ ((pText[1>> 2& 0x0F);
    uchar[
0= ((pText[1& 0x03<< 6+ (pText[2& 0x3F);
 
    
return;
}


// Unicode 轉(zhuǎn)換成UTF-8  
void UnicodeToUTF_8(char* pOut,WCHAR* pText)
{
    
// 注意 WCHAR高低字的順序,低字節(jié)在前,高字節(jié)在后
    char* pchar = (char *)pText;
 
    pOut[
0= (0xE0 | ((pchar[1& 0xF0>> 4));
    pOut[
1= (0x80 | ((pchar[1& 0x0F<< 2)) + ((pchar[0& 0xC0>> 6);
    pOut[
2= (0x80 | (pchar[0& 0x3F));
 
    
return;
}


// 把Unicode 轉(zhuǎn)換成 GB2312  
void UnicodeToGB2312(char* pOut,unsigned short uData)
{
    WideCharToMultiByte(CP_ACP,NULL,
&uData,1,pOut,sizeof(WCHAR),NULL,NULL);
    
return;
}
   

// GB2312 轉(zhuǎn)換成 Unicode
void Gb2312ToUnicode(WCHAR* pOut,char *gbBuffer)
{
    ::MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,gbBuffer,
2,pOut,1);
    
return;
}


//GB2312 轉(zhuǎn)為 UTF-8
void GB2312ToUTF_8(CString& pOut,char *pText, int pLen)
{
    
char buf[1024];
    
char* rst = new char[pLen + (pLen >> 2+ 2];
 
    memset(buf,
0,1024);
    memset(rst,
0,pLen + (pLen >> 2+ 2);
 
    
int i = 0;
    
int j = 0;   
    
while(i < pLen)
    
{
        
//如果是英文直接復(fù)制就可以
        if*(pText + i) >= 0)
        
{
            rst[j
++= pText[i++];
        }

        
else
        
{
            WCHAR pbuffer;
            Gb2312ToUnicode(
&pbuffer,pText+i);

            UnicodeToUTF_8(buf,
&pbuffer);

            unsigned 
short int tmp = 0;
            tmp 
= rst[j] = buf[0];
            tmp 
= rst[j+1= buf[1];
            tmp 
= rst[j+2= buf[2];

            j 
+= 3;
            i 
+= 2;
        }

    }

    strcpy(
&rst[j],"\0");
 
    
//返回結(jié)果
    pOut = rst;   
    delete []rst;   

    
return;
}


//UTF-8 轉(zhuǎn)為 GB2312
void UTF_8ToGB2312(CString &pOut, char *pText, int pLen)
{
    
char * newBuf = new char[pLen];
    
char Ctemp[4];
    memset(Ctemp,
0,4);
 
    
int i =0;
    
int j = 0;
 
    
while(i < pLen)
    
{
        
if(pText[i] > 0)
        
{
            newBuf[j
++= pText[i++];   
        }

        
else   
        
{
            WCHAR Wtemp;
            UTF_8ToUnicode(
&Wtemp,pText + i);

            UnicodeToGB2312(Ctemp,Wtemp);

            newBuf[j] 
= Ctemp[0];
            newBuf[j 
+ 1= Ctemp[1];

            i 
+= 3;   
            j 
+= 2;   
        }

    }

    strcpy(
&newBuf[j],"\0");
 
    pOut 
= newBuf;
    delete []newBuf;
 
    
return;  
}



CString UTF8_Encode(LPTSTR strUnicode)   
{   
    
long TLen ;   
    CString UTF8_EncodeLong ;   

    TLen 
= CString(strUnicode).GetLength() ;   

    
if(TLen == 0)   
    
{   
        
return CString(strUnicode);   
    }
   

    
long lngBufferSize ;   
    
long lngResult ;   

    
//Set buffer for longest possible string.   
    lngBufferSize = TLen * 3 + 1 ;   
    
char *bytUtf8 = new char[lngBufferSize] ;   

    
//Translate using code page 65001(UTF-8).   

    lngResult 
= WideCharToMultiByte(CP_UTF8, 0, (unsigned short*)strUnicode, TLen, bytUtf8, lngBufferSize, NULL, 0) ;   

    bytUtf8[lngResult] 
= NULL ;   

    
return CString(bytUtf8) ;
}

/*************************************************************************/
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 = '\0';
//sOut=pOutBuf;
//delete [] pOutBuf;
sOut.ReleaseBuffer();
}

sIn.ReleaseBuffer();
return sOut;
}

}



posted on 2012-06-15 23:18 聶文龍 閱讀(5459) 評論(2)  編輯 收藏 引用

FeedBack:
# re: VC URLEncode & UrlDecode 2016-01-10 00:15 聶文龍
//從 URL 專用格式字符串還原成普通字符串

#include <iconv.h>
#include <iostream>

using namespace std;

char Char2Int(char ch){
if(ch>='0' && ch<='9')return (char)(ch-'0');
if(ch>='a' && ch<='f')return (char)(ch-'a'+10);
if(ch>='A' && ch<='F')return (char)(ch-'A'+10);
return -1;
}

char Str2Bin(char *str){
char tempWord[2];
char chn;

tempWord[0] = Char2Int(str[0]); //make the B to 11 -- 00001011
tempWord[1] = Char2Int(str[1]); //make the 0 to 0 -- 00000000

chn = (tempWord[0] << 4) | tempWord[1]; //to change the BO to 10110000

return chn;
}

string UrlDecode(string str){
string output="";
char tmp[2];
int i=0,idx=0,ndx,len=str.length();

while(i<len){
if(str[i]=='%'){
tmp[0]=str[i+1];
tmp[1]=str[i+2];
output+=Str2Bin(tmp);
i=i+3;
}
else if(str[i]=='+'){
output+=' ';
i++;
}
else{
output+=str[i];
i++;
}
}

return output;
}

// 代碼轉(zhuǎn)換操作類 用于將utf-8 格式轉(zhuǎn)成 gb2312
class CodeConverter {
private:
iconv_t cd;
public:
CodeConverter(const char *from_charset,const char *to_charset) {// 構(gòu)造
cd = iconv_open(to_charset,from_charset);
}

~CodeConverter() {// 析構(gòu)
iconv_close(cd);
}

int convert(char *inbuf,int inlen,char *outbuf,int outlen) {// 轉(zhuǎn)換輸出
char **pin = &inbuf;
char **pout = &outbuf;

memset(outbuf,0,outlen);
return iconv(cd,pin,(size_t *)&inlen,pout,(size_t *)&outlen);
}
};

//輸入url_Utf-8 ,輸出 gb2312
string Url2Str_Utf8(string instr){
string input;
input=UrlDecode(instr);

const int outlen=instr.length();
char output[outlen];

CodeConverter cc = CodeConverter("utf-8","gb2312");
cc.convert((char *)input.c_str(),strlen(input.c_str()),output,outlen);

return output;
}

//輸入url_gb2312 ,輸出 gb2312 實(shí)際上是直接調(diào)用 UrlDecode()
string Url2Str_gb2312(string str){
return UrlDecode(str);
}


//示例程序
/*int main(){
//char out2[OUTLEN];

//+中國哈哈哈終于得了^_^
cout<<"Url2String_gb2312:"<<Url2String_gb2312("%2B%D6%D0%B9%FA%B9%FE%B9%FE%B9%FE%D6%D5%D3%DA%B5%C3%C1%CB%5E_%5E")<<endl;
cout<<"Url2String_Utf8:"<<Url2String_Utf8("%2B%E4%B8%AD%E5%9B%BD%E5%93%88%E5%93%88%E5%93%88%E7%BB%88%E4%BA%8E%E5%BE%97%E4%BA%86%5E_%5E")<<endl;

// utf-8-->gb2312

//cout << "utf-8-->gb2312 in=" << out1 << ",out=" << out2 << endl;
//cout<<Url2String_Utf8(out1);

return 0;
}*/  回復(fù)  更多評論
  
# re: VC URLEncode & UrlDecode 2016-01-10 00:18 聶文龍

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美影院在线播放| 亚洲欧美成人精品| 在线欧美小视频| 亚洲欧美视频| 亚洲精品孕妇| 欧美电影免费观看大全| 极品裸体白嫩激情啪啪国产精品| 亚洲午夜激情在线| 91久久久在线| 午夜精品久久久久久久久久久久 | 欧美亚洲一区二区在线| 99国产精品久久久久久久久久| 欧美国产视频日韩| 亚洲国产天堂久久综合网| 欧美3dxxxxhd| 美女国产一区| 99精品国产热久久91蜜凸| 亚洲欧洲精品一区二区精品久久久 | 久久久久久日产精品| 亚洲永久在线| 国产欧美一区二区三区在线老狼| 欧美一区二区三区久久精品| 亚洲男人影院| 国产一区二区无遮挡| 美女诱惑一区| 欧美国产精品va在线观看| 一本色道久久88精品综合| 一本色道久久综合精品竹菊| 国产精品视频1区| 久久久水蜜桃av免费网站| 久久精品亚洲精品国产欧美kt∨| 在线欧美日韩精品| 亚洲精品一区中文| 国产毛片精品国产一区二区三区| 欧美一区二区三区在线观看| 久久国产视频网| 亚洲精品久久久久中文字幕欢迎你| 亚洲精品久久久一区二区三区| 欧美吻胸吃奶大尺度电影| 欧美资源在线观看| 蜜臀av在线播放一区二区三区 | 99天天综合性| 国产日韩欧美制服另类| 你懂的网址国产 欧美| 欧美日韩高清不卡| 久久九九国产精品怡红院| 久久一二三四| 亚洲曰本av电影| 久久综合激情| 亚洲欧美影音先锋| 老司机精品福利视频| 另类激情亚洲| 久久久一区二区三区| 欧美大片免费观看| 久久成人精品无人区| 欧美黄色精品| 久久中文在线| 国产精品男女猛烈高潮激情| 欧美成人免费全部观看天天性色| 国产精品第一区| 欧美大成色www永久网站婷| 国产精品久久久久婷婷| 亚洲国产91色在线| 国产综合色产在线精品| 亚洲性夜色噜噜噜7777| 日韩视频免费大全中文字幕| 亚洲欧美伊人| 亚洲一区综合| 欧美成人影音| 免费短视频成人日韩| 国产精品激情电影| 亚洲激情一区二区| 亚洲成人在线视频播放| 午夜精品区一区二区三| 亚洲午夜激情网站| 欧美日韩精品一二三区| 亚洲国产激情| 亚洲精品婷婷| 欧美黄色大片网站| 亚洲欧美在线看| 欧美高清视频在线| 欧美一区二区三区免费观看视频| 国产一区二区你懂的| 欧美伦理91i| 久久国产精品99精品国产| 亚洲美女av网站| 欧美日韩综合| 午夜在线a亚洲v天堂网2018| 欧美日韩一区二| 亚洲大片一区二区三区| 激情五月婷婷综合| 久久激情久久| 久久亚洲国产精品一区二区| 国产一区二区三区网站| 欧美中文在线视频| 久久精品亚洲一区二区| 国产日韩欧美中文| 欧美呦呦网站| 欧美成人久久| 日韩一区二区久久| 欧美特黄一级| 亚洲一区二区三区色| 欧美一区二区三区播放老司机| 国产欧美日韩激情| 洋洋av久久久久久久一区| 欧美在线观看视频在线| 欧美在线黄色| 久久久一区二区| 亚洲国产成人精品女人久久久| 久久深夜福利| 亚洲国产老妈| 亚洲一二三区视频在线观看| 国产精品久久久久久超碰| 亚洲一区三区电影在线观看| 久久成人国产精品| 亚洲国产视频一区| 欧美日韩aaaaa| 亚洲一区二区三区影院| 久久久一区二区三区| 亚洲欧洲免费视频| 欧美日韩精品| 欧美一站二站| 91久久夜色精品国产九色| 亚洲伊人伊色伊影伊综合网| 国产小视频国产精品| 免费在线亚洲欧美| 一个色综合导航| 美国十次成人| 亚洲一二三区视频在线观看| 狠狠久久五月精品中文字幕| 欧美精品v日韩精品v国产精品| 亚洲一区高清| 亚洲国产精品一区| 亚洲一区二区3| 伊人伊人伊人久久| 欧美午夜精品伦理| 久久女同互慰一区二区三区| 一本大道久久a久久精品综合| 久久夜色精品国产欧美乱| 9国产精品视频| 一色屋精品视频在线看| 亚洲视频一二三| 久久乐国产精品| 亚洲另类自拍| 久久一区二区三区av| 亚洲一区区二区| 91久久精品久久国产性色也91| 国产精品欧美风情| 欧美r片在线| 欧美一区二区三区免费视频| 亚洲精品资源| 欧美电影在线观看完整版| 午夜欧美大片免费观看| 亚洲美女电影在线| 曰韩精品一区二区| 国产亚洲美州欧州综合国| 欧美精品在线视频| 久热精品视频在线免费观看| 欧美一区二区在线看| 99国产精品视频免费观看一公开| 免费亚洲一区| 久久字幕精品一区| 久久精品30| 久久成人国产精品| 欧美在线在线| 久久www成人_看片免费不卡| 亚洲欧美日韩中文播放| 一本一本久久a久久精品牛牛影视| 亚洲国产另类 国产精品国产免费| 国产综合色产在线精品| 国产一区二区三区久久精品| 国产女主播一区二区三区| 国产精品久久久久免费a∨| 欧美午夜在线视频| 国产精品爱久久久久久久| 欧美三级精品| 国产精品久久久久久福利一牛影视 | 日韩一级二级三级| 亚洲黄网站黄| 亚洲国产成人久久综合| 亚洲夫妻自拍| 91久久精品国产91久久性色| 91久久国产精品91久久性色| 亚洲国产一区二区三区青草影视| 樱花yy私人影院亚洲| 在线欧美日韩国产| 亚洲日韩第九十九页| 日韩亚洲欧美中文三级| 99视频在线观看一区三区| 中文成人激情娱乐网| 一区二区久久| 亚洲男人的天堂在线观看| 欧美一区二区三区日韩视频| 久久久久久97三级| 欧美大尺度在线观看| 亚洲人成毛片在线播放| 一区二区三区日韩在线观看| 亚洲欧美一区二区激情| 久久久综合激的五月天| 欧美精品麻豆|