在 Javascript 和 PHP 中编码 URL 的功能相同吗?
我一直在寻找可以在 PHP 和 Javascript 之间交换的函数 [用于编码和解码 URL] [我可以在 javascript 中对 URL 进行编码并在 PHP 中对其进行解码,反之亦然],出现了很多解决方案,例如escape() 和 unescape();对于 javascript,有encodeURI() 和decodeURI(),或者对于PHP,有urlencode() 和urldecode(),但是没有一对可以完美地协同工作。因为我想使用 Ajax jQuery 发送发布数据供 PHP 页面使用,并且数据可以与特殊字符混合,这就是为什么我需要一个在 PHP 和 Javascript 中工作相同的函数:
示例:
$.ajax{url: "test.php", data: "http://www.thisURLContainSpecialCharac.ter"}
看到上面的代码了吗?它在数据中包含特殊字符,可能会导致问题。
我很感激任何建议:)。谢谢。 [x]
I've been looking for the functions [used to encode and decode URL] that can be exchangable between PHP and Javascript [I can encode the URL in javascript and decode it in PHP and vice versa], there are many solutions come up, like escape() and unescape(); encodeURI() and decodeURI() for javascript, or urlencode() and urldecode() for PHP, but there is no pair which can works together perfectly. Because I want to send post data using Ajax jQuery for a PHP page to use, and data can be mixed with special character, that's why I need a function that works the same in PHP and Javascript:
Example:
$.ajax{url: "test.php", data: "http://www.thisURLContainSpecialCharac.ter"}
See the code above? It contains special characters in data, that may cause problem.
I appreciate any advice :). Thanks.
[x]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不想使用 Javascript 的
escape
函数,因为它不进行 URL 编码。请参阅 http://xkr.us/articles/javascript/encode-compare/失败的例子。Javascript 的 encodeURIComponent 将假设 UTF-8 进行编码,因此如果您使用它并且确保您的请求的内容类型为 UTF-8,您应该能够使用
utf8_decode
(
url解码($yourString))
。You don't want to use Javascript's
escape
function since it does not URL encode. See http://xkr.us/articles/javascript/encode-compare/ for examples where it fails.Javascript's encodeURIComponent will encode assuming UTF-8, so if you use that and make sure that your request has a content-type of UTF-8, you should be able to decode in PHP using
utf8_decode
(
urldecode($yourString))
.