¿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);
} p>
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"