php json data Chinese garbled solution: 1. Open the corresponding php file; 2. Add a parameter "JSON_UNESCAPED_UNICODE" to the "json_encode()" method to output Chinese normally.
The operating environment of this tutorial: Windows 10 system, PHP version 8.1, DELL G3 computer
php json data Chinese What to do about the garbled code problem?
Solution to Chinese garbled characters after converting php to json
Problem:
To read database data in php, you can use var_dump / print_r to correctly read the Chinese data , but after converting to json format, the Chinese data becomes garbled, similar to "\u5c0f\u660e";
Solution:
In the json_encode() method Add one more parameter JSON_UNESCAPED_UNICODE; json_encode in php will be encoded when processing Chinese data, and a string similar to "\u5c0f\u660e" will be obtained, which makes it inconvenient to read the data. After adding JSON_UNESCAPED_UNICODE, there is no need to compile the Chinese code Unicode, and the Chinese code will be output normally
Problem code:
//读取所有数据 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格式后 }
Problem output:
Solution code://读取所有数据 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 Video Tutorial
"The above is the detailed content of What to do if the php json data is garbled in Chinese?. For more information, please follow other related articles on the PHP Chinese website!