执行http-get请求到服务器时,我仍然不明白的是使用JS函数encodeURIcomponent对http-get的每个组件进行编码的优点是什么。encodeURIComponent真的很有用吗?
做了一些测试我看到服务器(使用PHP)也可以正确获取http-get请求的值,如果我不使用encodeURIcomponent! 显然我仍然需要在客户端编码特殊字符&? = /:否则,像这样的“和平&爱=美德”的http-get值将被视为http-get请求的新键值对而不是单个值。 但是为什么encodeURIcompenent还会编码许多其他字符,如'è'(例如,它被翻译成%C3%A8),必须使用utf8_decode函数在PHP服务器上解码。
通过使用encodeURIComponent方法的HTTP-GET请求的所有值是UTF8编码,因此在PHP让他们的时候我每次调用每个$ _GET值是很烦人的utf8_decode功能。
为什么我们不能只编码&? = /:字符?
还看到:JS encodeURIComponent result different from the one created by FORM 这说明encodeURIComponent方法甚至不正确编码,因为一个简单的浏览器表单GET编码像“€”字,以不同的方式。所以我仍然想知道这个encodeURIComponent是为了什么?
那么你基本上是说现在几天我可以避免使用encodeUriCompenent?只需编码特殊字符:'&','?','=','/',':'。这基本上适用于现在的绝大多数浏览器。 – 2010-02-11 14:31:04
它可以在大多数浏览器中工作..但请记住,网址也发布在论坛/博客/等等..如果该论坛/博客/等不是在Unicode中的网址(据说链接到您的网站)可能会搞砸了.. – 2010-02-11 14:43:55