问题:在PHP中读取数据库的数据,可以用var_dump / print_r 正确读出中文数据,但是转了JSON格式后,中文数据就变成乱码了类似于 "\u5c0f\u660e"; 解决方法:在json_encode()方法中添加多一
问题:在PHP中读取数据库的数据,可以用var_dump / print_r 正确读出中文数据,但是转了JSON格式后,中文数据就变成乱码了类似于 "\u5c0f\u660e";
解决方法:在json_encode()方法中添加多一个参数JSON_UNESCAPED_UNICODE; 例如:json_encode($this->cjarr,jsON_UNESCAPED_UNICODE);
为什么要加JSON_UNESCAPED_UNICODE,查询后我的理解:
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 '
'; 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 '
'; echo $this->jsonCjarr; //输出 }
解决问题后输出:
来源地址:https://blog.csdn.net/weixin_57666779/article/details/127907669
--结束END--
本文标题: 解决php转json后的中文乱码
本文链接: https://www.lsjlt.com/news/393431.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0