錯誤原因:
BOM報頭問題。伺服器端是php,回傳的接送資料』{‘前有bom報頭,java讀的時候把報頭直接當作文件內容讀,然後就會出錯。
什麼是BOM報頭?
BOM報頭又叫UTF-8簽名,其實UTF-8 的BOM對UFT-8沒有作用,是為了支援UTF-16、UTF-32才加上的BOM。
BOM簽章的意思是告訴編輯器目前檔案採用何種編碼,但是BOM雖然在編輯器中不顯示,但是會產生輸出,就像多了一個空白行。它是一串隱藏的字符,用於讓記事本等編輯器識別這個檔案是否以UTF-8編碼。
解決方法:
java、android客戶端等可以透過程式碼過濾掉bom,然後再解析。
/** * 去除bom报头 */ public static String formatString(String s) { if (s != null) { s = s.replaceAll("\ufeff", ""); } return s; }
推薦教學:PHP影片教學
以上是android無法解析php的json數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!