2011-04-26 46 views
1

我一直在尋找可以在PHP和Javascript之間交換的函數[用於編碼和解碼URL] [我可以在JavaScript中編碼URL並在PHP中解碼它,反之亦然],有許多解決方案出現,像escape()和unescape();用於javascript的encodeURI()和decodeURI(),用於PHP的urlencode()和urldecode(),但沒有可以完美協同工作的對。因爲我想使用Ajax的jQuery的PHP頁面用來發送POST數據,並且數據可以用特殊字符混合,這就是爲什麼我需要一個工作原理相同的PHP和JavaScript函數:在Javascript和PHP中對URL進行編碼的功能相同嗎?

例子:

$.ajax{url: "test.php", data: "http://www.thisURLContainSpecialCharac.ter"} 

查看上面的代碼?它包含數據中的特殊字符,可能會導致問題。

我欣賞任何建議:)。謝謝。 [x]

回答

1

你不想使用Javascript的escape函數,因爲它沒有URL編碼。有關失敗的示例,請參見http://xkr.us/articles/javascript/encode-compare/

JavaScript的encodeURIComponent將編碼假設UTF-8,因此,如果您使用,並確保你的要求有一個內容類型UTF-8的,你應該能夠使用PHP來解碼

utf8_decode(urldecode($yourString))

+0

你能舉個例子嗎?在JS和PHP? [x] – xx3004 2011-04-26 22:49:35

+1

你如何發送數據?您是將它傳遞給GET URL還是POST消息正文? – 2011-04-26 23:53:11

+0

@Mike Samuel:我使用POST,但是我可以雙向使用。爲什麼這有關係? [x] – xx3004 2011-04-27 04:57:56

相關問題