Descripción del método:
Este método permite anular QeryString.Parse
gramática:
La copia del código es la siguiente:
Querystring.unescape
Recibir parámetros:
ninguno
Código fuente:
La copia del código es la siguiente:
// Una alternativa rápida segura al decodeuricomponent
QueryString.unescapebuffer = function (s, decodespaces) {
var out = new Buffer (S.Length);
var state = 'char'; // Estados: Char, Hex0, Hex1
var n, m, hexchar;
para (var inIndex = 0, outIndex = 0; inIndex <= s.length; inIndex ++) {
var c = s.charcodeat (inIndex);
Switch (estado) {
Caso 'char':
Switch (c) {
Case Charcode ('%'):
n = 0;
m = 0;
estado = 'hex0';
romper;
Case Charcode ('+'):
if (decodeSpaces) c = charcode ('');
// pasar
por defecto:
out [outIndex ++] = c;
romper;
}
romper;
Caso 'Hex0':
estado = 'hex1';
hexchar = c;
if (charcode ('0') <= c && c <= charcode ('9')) {
n = C - Charcode ('0');
} else if (charcode ('a') <= c && c <= charcode ('f')) {
n = C - Charcode ('A') + 10;
} else if (charcode ('a') <= c && c <= charcode ('f')) {
n = C - Charcode ('A') + 10;
} demás {
out [outIndex ++] = charcode ('%');
out [outIndex ++] = c;
estado = 'char';
romper;
}
romper;
Caso 'Hex1':
estado = 'char';
if (charcode ('0') <= c && c <= charcode ('9')) {
M = C - Charcode ('0');
} else if (charcode ('a') <= c && c <= charcode ('f')) {
M = C - Charcode ('A') + 10;
} else if (charcode ('a') <= c && c <= charcode ('f')) {
M = C - Charcode ('A') + 10;
} demás {
out [outIndex ++] = charcode ('%');
out [outIndex ++] = hexchar;
out [outIndex ++] = c;
romper;
}
out [outIndex ++] = 16 * n+m;
romper;
}
}
// TODO admite buffers arbitrarios que devuelven.
return out.slice (0, outIndex - 1);
};