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格式后,中文數據就變成亂碼了類似于 "u5c0fu660e";
解決方法:
在json_encode()方法中添加多一個參數JSON_UNESCAPED_UNICODE;
例如:json_encode($this->cjarr,JSON_UNESCAPED_UNICODE);
為什么要加JSON_UNESCAPED_UNICODE,查詢后我的理解:
php中的json_encode在處理中文數據時會進行編碼,得到類似于 "u5c0fu660e" 的字符串,使得讀取數據不便,添加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視頻教程》
站長資訊網