在透過別人介面請求訊息的時候,偶爾會遇到由於部分字符,如以下情況,則透過json_decode是會返回null的
但是這種情況通常不是由於整體編碼的問題,因為在解析的時候就是以utf-8的編碼解析的
這種情況通常會是中英文並存,但是部分空白字元無法辨識。
透過對系統邏輯的觀察,應該是由於前段保存字符的時候出現了非utf-8能夠識別的字符,這種情況在json_encode中並不受影響,所以直接導致了接口獲取數據的時候出現非法字元
解決方案:
$return_data=mb_convert_encoding($return_data, "UTF-8","UTF-8");
對透過curl請求回來的字元在進行一次強制編碼,這種情況下原本的utf-8編碼的文字不會受到影響,同時utf-8無法辨識的字元將會被強制解析,解析出來之後的字元就會變成英文符號的? ,
這樣就能夠順利的json_decode 了
以上是PHP json_decode 無法解析特殊問號字元的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!