前言:
眼前看官们对“urldecode js”大概比较关心,我们都需要知道一些“urldecode js”的相关文章。那么小编在网上汇集了一些有关“urldecode js””的相关文章,希望我们能喜欢,大家一起来了解一下吧!URL编码的姐妹篇 HTTP报文URL编码实现 .
Content-Type指定为application/x-www-form-urlencoded 的时候
我们提交的数据编码形式是通过&连接 比如key="<hack>"&value="ailx10"
同时<hack>和ailx10会进行URL编码
key=%3Chack%3E&value=ailx10
%3C:< %3E:>
0x3C是<的ASCII码 %3E是>的ASCII码
所以懂了吗?URL编码就是将字符编码成ASCII码或其他
那么URLDecode的意思就是将ASCII码或其他 转化成字符
这里方便理解以ASCII码为例子 记住不仅仅是ASCII码哦
当我们遇到%的时候 意味着转码开始 连续2个16进制数字 比如%3C
URL转码就是将%3C转为char型10进制数据60 记住这里只占1个字节哦
怎么玩呢?代码如下
解释一下HEX2DEC数据的意义
16进制转10进制的转换表 ASCII码10进制48是字符0 65是字符A 97是字符a
在看看HEX2DEC数组
HEX2DEC[48] = 0
HEX2DEC[65] = A
HEX2DEC[97] = a
所以现在理解了吧 ~~~
void utils_uri_decode(const unsigned char* sSrc,char* dst) { const unsigned char *pSrc = sSrc; size_t src_len = strlen((const char*)sSrc); const unsigned char *src_end = pSrc + src_len; const unsigned char *src_last_dec = src_end - 2; char *pStart = dst; char *pEnd = pStart; while (pSrc < src_last_dec) { if (*pSrc == '%') { char dec1, dec2, guard = -1; if (guard != (dec1 = HEX2DEC[*(pSrc + 1)]) && guard != (dec2 = HEX2DEC[*(pSrc + 2)])) { *pEnd++ = (dec1 << 4) + dec2; pSrc += 3; continue; } } *pEnd++ = *pSrc++; } while (pSrc < src_end) { *pEnd++ = *pSrc++; } return;}
const char HEX2DEC[256] = { /* 0 1 2 3 4 5 6 7 8 9 A B C D E F */ /* 0 */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* 1 */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* 2 */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* 3 */ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* 4 */ (char)-1, 10, 11, 12, 13, 14, 15, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* 5 */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* 6 */ (char)-1, 10, 11, 12, 13, 14, 15, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* 7 */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* 8 */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* 9 */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* A */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* B */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* C */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* D */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* E */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, /* F */ (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1, (char)-1};
标签: #urldecode js #url 转码