json字串無法解析的問題

來源:互聯網
上載者:User
就是我做了一個PHP介面,返回的資料是json格式(資料格式沒問題,且編碼是utf8格式);但調用時無法解析這個json格式的資料,但我把返回的資料複製成字串,就可以解析了。找了半天,發現在輸出的源碼前面多了空白,但是這個空白不能通過trim 去空格的方式解決,類比請求介面,用了去bom頭的方式 trim($result, "\xEF\xBB\xBF"); 還是無法解析,請教一下有遇到過這個問題的嗎


回複討論(解決方案)

那就是你json_encode輸出那塊沒寫好 有沒有聲明 header('Content-type:application/json;charset=utf-8');

應該是 BOM 頭的影響
$result = trim($result, "\xEF\xBB\xBF");
只是去除了 $result 中的 BOM
並沒有去除你 php 程式檔案的 BOM

建一新程式

echo bin2hex(file_get_contents('http://yourhost/api.php'));
j執行後就可看到是否有 BOM

應該是 BOM 頭的影響
$result = trim($result, "\xEF\xBB\xBF");
只是去除了 $result 中的 BOM
並沒有去除你 php 程式檔案的 BOM

建一新程式

echo bin2hex(file_get_contents('http://yourhost/api.php'));
j執行後就可看到是否有 BOM



應該是 BOM 頭的影響
$result = trim($result, "\xEF\xBB\xBF");
只是去除了 $result 中的 BOM
並沒有去除你 php 程式檔案的 BOM

建一新程式

echo bin2hex(file_get_contents('http://yourhost/api.php'));
j執行後就可看到是否有 BOM



應該是 BOM 頭的影響
$result = trim($result, "\xEF\xBB\xBF");
只是去除了 $result 中的 BOM
並沒有去除你 php 程式檔案的 BOM

建一新程式

echo bin2hex(file_get_contents('http://yourhost/api.php'));
j執行後就可看到是否有 BOM



可以看到有這些輸出 前端有這些輸出
2020efbbbf7b22737461747573223a302c226d657373616765223a225c75396138635c7538626

那應該怎麼去掉檔案裡bom頭呢

前面的 2020efbbbf
2020 表示有兩個空格
efbbbf 不就是 bom 嗎?

應該是 BOM 頭的影響
$result = trim($result, "\xEF\xBB\xBF");
只是去除了 $result 中的 BOM
並沒有去除你 php 程式檔案的 BOM

建一新程式

echo bin2hex(file_get_contents('http://yourhost/api.php'));
j執行後就可看到是否有 BOM

謝謝版主的熱心回答,問題終於解決了 把所有相關檔案都查了下 找到了包含bom頭的檔案 重新編輯了一下 可以解析json 了

notepad++可以將檔案轉為無BOM格式

可以看下這篇日誌:http://my.oschina.net/rain21/blog/384549

notepad++可以將檔案轉為無BOM格式

可以看下這篇日誌:http://my.oschina.net/rain21/blog/384549

謝謝你的回答 我試試
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.