urldecode

本函式對字元串進行URL解碼。例如通過urlencode編碼後的字元串,可通過UrlDecode進行解碼。對Url路徑加碼的函式是UrlEncode 用法相反,和UrlDecode是一致對應的·

基本介紹

  • 中文名:路徑解碼
  • 外文名:urldecode
  • :字元串進行URL解碼
  • 返回值::已解碼的字元串 
  • 函式種類::編碼處理
簡介,內容說明,

簡介

對字元串進行URL解碼。
返回值:已解碼的字元串
函式種類: 編碼處理

內容說明

VC環境實現UrlDecode示例
/*
URLEncode是這樣編碼的
1。數字和字母不變。
2。空格變為"+"號。
3。其他被編碼成"%"加上他們的ascii十六進制,規律是這樣的
比如“啊”字 編碼的十六進制是B0A1——>%B0%A1(Note:它是每個位元組前加個%)。
*/
#include <iostream>
#include <string>
#include <fstream>
#include <ctype.h>
#include <stdlib.h>
using namespace std;
typedef unsigned char BYTE;
inline BYTE toHex(const BYTE &x)
{
return x > 9 ? x + 55: x + 48;
}
string urlEncoding( string &sIn )
{
cout << "size: " << sIn.size() << endl;
string sOut;
for( int ix = 0; ix < sIn.size(); ix++ )
{
BYTE buf[4];
memset( buf, 0, 4 );
if( isalnum( (BYTE)sIn[ix] ) )
{
buf[0] = sIn[ix];
}
else if ( isspace( (BYTE)sIn[ix] ) )
{
buf[0] = '+';
}
else
{
buf[0] = '%';
buf[1] = toHex( (BYTE)sIn[ix] >> 4 );
buf[2] = toHex( (BYTE)sIn[ix] % 16);
}
sOut += (char *)buf;
}
return sOut;
}
int main(int argc, char *argv[])
{
string src;
ifstream inFile( "in.txt" );
if( !inFile )
{
cout << "not in.txt to read" << endl;
system("PAUSE");
return -1;
}
inFile >> src;
string sOut = urlEncoding( src );
cout << sOut << endl;
system("PAUSE");
return 0;
}
PHP urldecode示例
$str1=urlencode("百度"); //$str1的值是%B0%D9%B6%C8
$str2=urldecode($str1); //$str2的值就是“百度”

相關詞條

熱門詞條

聯絡我們