Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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和PHP中编码URL时使用相同的函数?_Javascript_Jquery_Urlencode - Fatal编程技术网

在Javascript和PHP中编码URL时使用相同的函数?

在Javascript和PHP中编码URL时使用相同的函数?,javascript,jquery,urlencode,Javascript,Jquery,Urlencode,我一直在寻找可以在PHP和Javascript之间交换的函数[用于对URL进行编码和解码][我可以用Javascript对URL进行编码并用PHP对其进行解码,反之亦然],有很多解决方案,比如escape()和unescape();encodeURI()和decodeURI()用于javascript,或者urlencode()和urldecode()用于PHP,但没有一对能够完美地协同工作。因为我想使用Ajax jQuery发送post数据以供PHP页面使用,并且数据可以与特殊字符混合,所以我

我一直在寻找可以在PHP和Javascript之间交换的函数[用于对URL进行编码和解码][我可以用Javascript对URL进行编码并用PHP对其进行解码,反之亦然],有很多解决方案,比如escape()和unescape();encodeURI()和decodeURI()用于javascript,或者urlencode()和urldecode()用于PHP,但没有一对能够完美地协同工作。因为我想使用Ajax jQuery发送post数据以供PHP页面使用,并且数据可以与特殊字符混合,所以我需要一个在PHP和Javascript中工作相同的函数:

例如:

$.ajax{url: "test.php", data: "http://www.thisURLContainSpecialCharac.ter"}
看到上面的代码了吗?它在数据中包含特殊字符,这可能会导致问题

我感谢你的建议:)。谢谢
[x]

您不想使用Javascript的
escape
函数,因为它不进行URL编码。有关失败的示例,请参见

Javascript将采用UTF-8进行编码,因此如果您使用UTF-8并确保您的请求的内容类型为UTF-8,您应该能够使用


($yourString))

您不想使用Javascript的
转义
函数,因为它不进行URL编码。有关失败的示例,请参见

Javascript将采用UTF-8进行编码,因此如果您使用UTF-8并确保您的请求的内容类型为UTF-8,您应该能够使用


($yourString))

您是如何发送数据的?您是在GET URL中传递,还是在POST消息正文中传递?@xx3004,如果不知道您在做什么,我不能给您举个例子。“但我认为它是双向的”这句话似乎有点拼写错误。请澄清一下。@xx3004,JavaScript可以对传递给JavaScript函数的特殊字符进行编码。但是JavaScript并不位于浏览器URL栏和系统之间。浏览器应该确保只有格式良好的URL才能到达您的服务器,但您不应该依赖它。它是什么,它向谁发送了什么?如果是用户坐在URL栏中的浏览器旁,那么您无法控制他们输入的内容,所以不要担心。如果是您编写的在服务器上运行的JavaScript代码,那么请使用
encodeURIComponent
来担心它。无论发送消息的是什么,服务器代码始终需要检查其接收的消息是否格式正确且经过授权。如果帖子正文的内容类型标题设置为
application/x-www-form-urlencoded
,则PHP应自动对其进行解码。如果内容作为GET或POST请求的一部分通过URL的查询部分发送,那么PHP应该自动对其进行解码。你唯一需要解码的时间是当你使用一个带有帖子正文的时髦内容类型时。你是如何发送数据的?您是在GET URL中传递,还是在POST消息正文中传递?@xx3004,如果不知道您在做什么,我不能给您举个例子。“但我认为它是双向的”这句话似乎有点拼写错误。请澄清一下。@xx3004,JavaScript可以对传递给JavaScript函数的特殊字符进行编码。但是JavaScript并不位于浏览器URL栏和系统之间。浏览器应该确保只有格式良好的URL才能到达您的服务器,但您不应该依赖它。它是什么,它向谁发送了什么?如果是用户坐在URL栏中的浏览器旁,那么您无法控制他们输入的内容,所以不要担心。如果是您编写的在服务器上运行的JavaScript代码,那么请使用
encodeURIComponent
来担心它。无论发送消息的是什么,服务器代码始终需要检查其接收的消息是否格式正确且经过授权。如果帖子正文的内容类型标题设置为
application/x-www-form-urlencoded
,则PHP应自动对其进行解码。如果内容作为GET或POST请求的一部分通过URL的查询部分发送,那么PHP应该自动对其进行解码。你唯一需要解码的时间是当你使用一个带有帖子正文的时髦内容类型时。