2014-01-24 60 views
0

發送的信息,我嘗試發送信息到服務器。 charset編碼設置爲UTF-8。 jsp頁面編碼也設置爲UTF-8。我使用彈簧mvc編碼的麻煩,而在服務器

我形成json並嘗試將其發送到服務器。但是當我得到響應身體時,我看到字attributeCategory%5B0%5D%5Batt之間的奇怪符號。 我搜索,所有的建議都是有編碼的UTF-8來解決這樣的問題。

UPDATE

當我在服務器端加入這一行URLDecoder.decode(body, "ISO-8859-1");一切正常形式編碼。所以我的問題是什麼,我需要用我的JSON或別的東西來改變,使我用UTF-8編碼工作方案

+0

如果您的響應的Content-Type標頭爲'application/x-www-form-urlencoded',則應通過['URLDecoder.decode'](http://docs.oracle.com)運行您的響應正文文本/javase/7/docs/api/java/net/URLDecoder.html#decode%28java.lang.String,%20java.lang.String%29)。正如文檔建議的那樣,您應該通過「UTF-8」作爲第二個參數。 – VGR

回答

0
  • %5B = [(十六進制代碼5B)
  • %5D = ](十六進制代碼5D)

這可能源於同名的HTML INPUT字段,所以實際上attributeCategory[0][att的意思是(可能在這裏有誤)。

它也可能是JavaScript的。

這是一個url編碼的非基本字符的HTTP傳輸,如[]等。與編碼無關。

我希望這點指向這個錯誤的一些原因。

+0

所以我需要添加一些東西到我的Ajax代碼或者在服務器端寫類似的字符集過濾器來獲得與[]符號代替%5B普通文本??? –

+0

對不起,但我不知道。爲什麼要傳送像'attributeCategory [0]'這樣的東西?如果作爲JSON字段名稱爲「{name:」value「}」,則將整個字符串也放在引號中('「name」')。 –