php json資料中文亂碼問題的解決方法:1、開啟對應的php檔案;2、在「json_encode()」方法中加入一個參數「JSON_UNESCAPED_UNICODE」即可正常輸出中文。
本教學操作環境:Windows10系統、PHP8.1版、DELL G3電腦
php json資料中文亂碼問題怎麼辦?
解決php轉json後的中文亂碼
問題:
#在php中讀取資料庫的數據,可以用var_dump / print_r 正確讀取中文數據,但是轉了json格式後,中文資料就變成亂碼了類似"\u5c0f\u660e";
解決方法:
在json_encode()方法中加入多一個參數JSON_UNESCAPED_UNICODE;
例如:json_encode($this->cjarr,JSON_UNESCAPED_UNICODE);##ICO#BICO#MID php中的json_encode在處理中文資料時會進行編碼,得到類似"\u5c0f\u660e" 的字串,使得讀取資料不方便,加入JSON_UNESCAPED_UNICODE後就不用編譯中文碼Unicode,正常輸出中文
問題代碼:
//读取所有数据 public function SelectAll(){ $sql = 'SELECT * FROM `websql`'; mysqli_query($this->link,'set names utf8'); $results = mysqli_query($this->link, $sql); while($row = mysqli_fetch_assoc($results)){ array_push($this->cjarr,$row); } } public function a(){ print_r($this->cjarr);//未转json格式前 echo '<br><br>'; echo json_encode($this->cjarr);//转json格式后 }
問題輸出:
# 解決問題代碼://读取所有数据 public function SelectAll(){ $sql = 'SELECT * FROM `websql`'; mysqli_query($this->link,'set names utf8'); $results = mysqli_query($this->link, $sql); while($row = mysqli_fetch_assoc($results)){ array_push($this->cjarr,$row); } //添加JSON_UNESCAPED_UNICODE 后解决该问题 $this->jsonCjarr = json_encode($this->cjarr,JSON_UNESCAPED_UNICODE); } public function a(){ print_r($this->cjarr);//未转json格式前 echo '<br><br>'; echo $this->jsonCjarr; //输出 }解決問題後輸出:
#推薦學習:《
PHP影片教學》
以上是php json資料中文亂碼問題怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!