Red de conocimiento informático - Conocimiento sistemático - ¿Cómo realiza Locomotive la decodificación UrlDecode?

¿Cómo realiza Locomotive la decodificación UrlDecode?

Ejemplo de implementación de UrlDecode en un entorno VC

/*

URLEncode está codificado así

1. Los números y letras permanecen sin cambios.

2. Los espacios se convierten en signos " ".

3. Otros están codificados como "" más su hexadecimal ascii, la regla es así

Por ejemplo, ¿la palabra "ah"? El hexadecimal de Ascii es B0A1——gt; cada byte).

*/

#include?lt;iostreamgt;

#include?lt;stringgt;

#include?lt;fstreamgt ;

#include?lt;ctype.hgt;

#include?lt;stdlib.hgt;

usando?namespace?std;

typedef?unsigned?char?BYTE;

en línea?BYTE?toHex(const?BYTE?amp;x)

{

return?x ?gt;?9?x?55:?x?48;

}

string?urlEncoding(?string?amp;sIn?)

{

cout?lt;lt;?"size:?"?lt;lt;?sIn.size()?lt;lt;?endl;

string?sOut ;

for(?int?ix?=?0;?ix?lt;?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 ]?gt;gt;?4?);

buf[2]?=?toHex(?(BYTE)sIn[ix]??16);

}

sOut? =?(char?*)buf;

}

retorno?sOut;

}

int?main(int?argc,?char?*argv[])

{

string?src;

ifstream?inFile(?" in. txt"?);

if(?!inFile?)

{

cout?lt;lt;?"not?in.txt? leer"?lt;lt;?endl;

sistema("PAUSA");

regresar?-1;

}

inFile?gt;gt;?src;

cadena?sOut?=?urlEncoding(?src?);

cout?lt;lt;?sOut?lt; ?endl;

system("PAUSE");

return?0;

}

Ejemplo de PHP?urldecode

$str1=urlencode("Baidu");?//El valor de $str1 es B0D9B6C8

$str2=urldecode($str1);?//El valor de $str2 es " Baidu"