当前位置:  开发笔记 > 编程语言 > 正文

如何编码查询字符串,使其成为javascript中另一个查询字符串的值?

如何解决《如何编码查询字符串,使其成为javascript中另一个查询字符串的值?》经验,为你挑选了1个好方法。

我有一个javascript函数,它作为查询字符串值传递另一个查询字符串.

换句话说,我希望查询字符串为:

http://www.somesite.com/?somequery=%3fkey%3dvalue1%2520%26%2520key2%3value3

但是,如果我像这样重定向:

var url = 'http://www.somesite.com/?somequery=';
url += escape('?key=value1&key2=value2');
window.location = url;

它最终http://www.somesite.com?somequery=?key1=value1&key2=value2在firefox和IE7中,这意味着我无法正确解析查询字符串.

我也试过使用encodeURIComponent也没用.

是否有另一个函数或黑客强制重定向保持somequery值逃脱?



1> bobince..:

encodeURIComponent将起作用.(您可能想要也可能不想要前导'?',具体取决于脚本的期望.)

var c= 'd e'
var query= '?a=b&c='+encodeURIComponent(c);
var uri= 'http://www.example.com/script?query='+encodeURIComponent(query);
window.location= uri;

带我去:

http://www.example.com/script?query=%3Fa%3Db%26c%3Dd%2520e

当您将鼠标悬停在浏览器的状态栏上时,它可能会出现一次解码,但最终会出现在正确的位置.

escape/unescape()对于编码查询参数是错误的,它会获得Unicode字符和错误.几乎从来没有一种情况下escape()是你真正需要的.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有