2010-03-17 31 views
2

我正在使用XMLHttpRequest將一個JSON字符串發佈到PHP。 JSON對象在JavaScript中創建,並使用json.org中的JSON2.js創建代表對象的JSON字符串。JSON htmlentities javascript

JSON.stringify(object);

每當對象包含具有特殊字符在它的字符串,例如é,JavaScript不給出任何錯誤,但PHP接收空數組

[]

是否有產生完全相同的resutls作爲PHP函數

htmlentities()

的數據是一個JavaScript功能通過POST發送,所以下列功能

escape() 
encodeURI() 
encodeURIComponent() 

是有點矯枉過正。

謝謝!

+0

像JQuery這樣的庫會爲你執行這種編碼 – Andy 2010-03-17 13:48:10

+2

@Andy:jQuery不會做任何不是本地可用的東西 - 它使用encodeURIComponent()。 – 2010-03-17 14:08:32

+0

@Andy E當然不是,但爲什麼在AJAX庫比比皆是時重新發明輪子? – Andy 2010-03-18 10:02:48

回答

6

即使通過POST發送東西,你仍然需要正確的urlencode。如果和號字符在JSON正文中,則這將被視爲參數/值對分隔符,並且您的JSON將不再有效。

escape()已棄用,所以請使用encodeURIComponent()。這不應該是矯枉過正,因爲這是該功能的預期目的之一。