網頁常常是UTF8的,而我們用VC用Wininet相關API POST數據時,有中文的話,經常是%XX%XX%XX這種形式,這樣的話,就能方便做出在線翻譯之類的小軟件,HOHO
所以寫了個UTF8 URL編碼轉換函數
BOOL ConvertStringToURLCoding(CString &strDest, const char* strUTF8, int iLength)

{
strDest.Empty();
CString strTemp;
int i = 0;
while(i < iLength)
{
if ((unsigned)strUTF8[i] <= (unsigned char)0x7f)
{ //字母和數字不轉換
if ((strUTF8[i] >= '0' && strUTF8[i] <= '9') ||
(strUTF8[i] >= 'A' && strUTF8[i] <= 'Z') ||
(strUTF8[i] >= 'a' && strUTF8[i] <= 'z'))
{
strDest += (char)strUTF8[i];
}
else if (strUTF8[i] == ' ') //空格轉換成+號
{
strDest += '+';
}
else
{
strTemp.Format("%%%02X", (unsigned char)strUTF8[i]); //其他標點符號
strDest += strTemp;
}
i++;
}
else
{ //漢字或者其他的uft8文字,每3個字節一轉
strTemp.Format("%%%02X%%%02X%%%02X", (unsigned char)strUTF8[i],
(unsigned char)strUTF8[i + 1], (unsigned char)strUTF8[i + 2]);
strDest += strTemp;
i += 3;
}
}
if (i == 0)
{
return FALSE;
}
return TRUE;
}by greatws

