Home >Backend Development >PHP Problem >What to do if the php json data is garbled in Chinese?

What to do if the php json data is garbled in Chinese?

藏色散人
藏色散人Original
2023-02-03 11:14:114275browse

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.

What to do if the php json data is garbled in Chinese?

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 &#39;<br><br>&#39;;
            echo json_encode($this->cjarr);//转json格式后
        }

Problem output:

Solution code:

//读取所有数据
        public function SelectAll(){
             $sql = &#39;SELECT * FROM `websql`&#39;;
             mysqli_query($this->link,&#39;set names utf8&#39;);
             $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 &#39;<br><br>&#39;;
            echo $this->jsonCjarr; //输出
        }

Output after solving the problem:

What to do if the php json data is garbled in Chinese?

Recommended learning: "

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn