Malformed UTF-8 characters, possibly incorrectly encoded PHP項目報錯


 

突然正常的項目報這個錯誤;

因為最近在遷移新的服務器堡壘機UTF-8編碼有些問題,一直在調整服務器編碼問題;以為是服務器配置造成的;

排查了半天本機一樣有問題,本地最近又沒有調整過 系統編碼應該不會出現此問題;

 

報錯界面:

[0] InvalidArgumentException in Json.php line 39

Malformed UTF-8 characters, possibly incorrectly encoded

 

最終排查發現不是系統的問題:

是碰巧的一個字段在使用時候:中文截取的問題;

原因:substr 與 mb_substr 的使用問題;

錯誤的截取中文造成代碼異常不能 正常轉換;一定要注意!!!

修改前代碼:

$val['linked_teacher'] = nameCryptic(substr($val['linked_teacher'],1,4));

修改后代碼:

$val['linked_teacher'] = nameCryptic(mb_substr($val['linked_teacher'],1,4));

 

唉,這個bug 大意了;

--------------------------------------------------------------------

一些其他的答案:

https://stackoverflow.com/questions/31115982/malformed-utf-8-characters-possibly-incorrectly-encoded-in-laravel

https://stackoverflow.com/questions/63399718/invalidargumentexception-malformed-utf-8-characters-possibly-incorrectly-encod

對資源進行轉碼:

$json = html_entity_decode($source);

$data = json_decode($json,true);

 

文章來源:劉俊濤的博客 歡迎關注公眾號、留言、評論,一起學習。

__________________________________________________________________________________

若有幫助到您,歡迎點擊推薦,您的支持是對我堅持最好的肯定(*^_^*)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM