重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本文小编为大家详细介绍“php json数据中文乱码如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“php json数据中文乱码如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
10年积累的成都网站设计、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有班戈免费网站建设让你可以放心的选择与我们合作。
php json数据中文乱码问题的解决办法:1、打开相应的php文件;2、在“json_encode()”方法中添加一个参数“JSON_UNESCAPED_UNICODE”即可正常输出中文。
问题:
在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; //输出
}
解决问题后输出:
读到这里,这篇“php json数据中文乱码如何解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注创新互联行业资讯频道。