Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在url中编码特殊字符的最佳方法_Javascript_Php_Url_Encode - Fatal编程技术网

Javascript 在url中编码特殊字符的最佳方法

Javascript 在url中编码特殊字符的最佳方法,javascript,php,url,encode,Javascript,Php,Url,Encode,在url中编码特殊字符的最佳方法是什么?假设我以这种方式将一个变量从javascript传递到php脚本: http://example.com/my sp3c!al var!a$le 对特殊字符(如空格、!、$、/、\等)进行编码的最佳方式是什么?javascript中是否有一种方法可以使用php中的相应函数对其进行编码以解码?您需要使用encodeURIComponent(yourvar)您可以通过三种方式完成 encodeURI(yourvar) 输出http://example.com

在url中编码特殊字符的最佳方法是什么?假设我以这种方式将一个变量从javascript传递到php脚本:

http://example.com/my sp3c!al var!a$le

对特殊字符(如空格、!、$、/、\等)进行编码的最佳方式是什么?javascript中是否有一种方法可以使用php中的相应函数对其进行编码以解码?

您需要使用
encodeURIComponent(yourvar)

您可以通过三种方式完成

encodeURI(yourvar) 输出<代码>http://example.com/my%20sp3c!al%20var!$le

amd

encodeURIComponent(yourvar)

输出
http%3A%2F%2fexame.com%2Fmy%20sp3c!al%20var!a%24le

escape()

输出
http%3A//example.com/my%20sp3c%21al%20var%21a%24le

不推荐使用escape,因为它在ECMAScript v3之后已被弃用


函数用于JavaScript转义,而不是HTTP。

在我的例子中,这并不完全有效。请参见上面的示例url。我使用域后面的部分将其与htaccess规则一起传输到查询参数。但是,如果“我的特殊变量”包含斜杠,则该斜杠确实会转换为%2F,但会导致问题,因为浏览器在调用该url时会将斜杠视为特殊字符。(比如)如何防止这种情况发生?但如果“我的特殊变量”部分包含斜杠怎么办?它被编码为%2F,但在调用url时会导致问题,因为浏览器希望打开而不是传输“myspecial/variable”。我怎样才能防止这种情况发生呢?所以解决这个问题的唯一方法就是用其他字符(如a)替换“/”等字符,这样浏览器就能正确调用url,对吗?这似乎是个肮脏的骗局。。