我创建了一个表单,在另一个html页面中显示结果,但@
符号在新页面中显示为%40
。这是我的代码。有人可以帮忙吗?
<script type="text/javascript">
window.onload = function () {
var url = document.location.href,
params = url.split('?')[1].split('&'),
data = {}, tmp;
for (var i = 0, l = params.length; i < l; i++) {
tmp = params[i].split('=');
data[tmp[0]] = tmp[1];
}
document.getElementById('email-display').innerHTML = data.Email;
}
</script>
答案 0 :(得分:0)
URL查询组件已编码。你没有完全解码它。 %40
是@
的编码形式。从技术上讲,@
不需要在查询组件中进行编码,但您的服务器正在这样做。
在&
和=
上拆分查询数据后,需要通过将%XX
十六进制序列替换为相应的字节来解码生成的子字符串,然后转换生成的字节根据服务器使用的任何字符集来串字符(通常是utf-8,但并非总是如此)。
阅读RFC 3986,特别是Section 2.1和Section 3.4。