php json_encode乱码的处理方法:起首把数据库编码以及页面编码都改成UTF8;而后应用“json_encode”将PHP中的array数组转为JSON字符串;最初用函数urlencode解决下便可。
PHP json_encode中文乱码处理办法
置信不少人正在应用Ajax与后盾php页面进行交互的时分都碰着过中文乱码的成绩。JSON作为一种轻量级的数据替换格局,备受亲睐,然而用PHP 作为后盾交互,容易呈现中文乱码的成绩。JSON以及js同样,关于客户真个字符都是以UTF8的方式进行解决的,也就是说,应用JSON作为提交以及接纳的 数据格局时字符都采纳UTF8编码解决,当咱们的页面编码以及数据库编码没有是采纳UTF8的时分,就极容易呈现中文乱码的成绩。处理方法天然是正在用js或许 PHP解决JSON数据的时分都采纳UTF8的方式。
PHP5.2或以上的版本把json_encode作为内置函数来用,给网站制造者带来了很年夜的不便,然而咱们必需留意到json_encode只支持UTF8编码的字符,不然,中文乱码或许空值就呈现了。
处理方法分为如下两个步骤。
Step1
保障正在应用JSON解决的时分字符是以UTF8编码的。详细咱们能够把数据库编码以及页面编码都改成UTF8。当然喜爱用gbk编码的话,能够正在进行JSON解决前,把字符转为UTF8方式。正在PHP中有以下办法:
<?php $data="JSON中文"; $newData=iconv("GB2312","UTF-8//IGNORE",$data); echo $newData; //ignore的意义是疏忽转换时的谬误,假如不ignore参数,一切该字符前面的字符都没有会被保留。 //或是("GB2312","UTF-8",$data); ?>
Step2
后盾PHP页面(页面编码为UTF-8或许曾经把字符转为UTF-8)应用json_encode将PHP中的array数组转为JSON字符串。例如:
<?php $testJSON=array('name'=>'中文字符串','value'=>'test'); echo json_encode($testJSON); ?>
查看输入后果为:
{“name”:”\u4e2d\u6587\u5b57\u7b26\u4e32″,”value”:”test”}
可见即便用UTF8编码的字符,应用json_encode也呈现了中文乱码。处理方法是正在应用json_encode以前把字符用函数urlencode()解决一下,而后再json_encode,输入后果的时分正在用函数urldecode()转回来。详细以下:
<?php $testJSON=array('name'=>'中文字符串','value'=>'test'); //echo json_encode($testJSON); foreach ( $testJSON as $key => $value ) { $testJSON[$key] = urlencode ( $value ); } echo urldecode ( json_encode ( $testJSON ) ); ?>
查看输入后果为:
{“name”:”中文字符串”,”value”:”test”}
到此,胜利地输入了中文字符。随 意应用json_encode吧。这样子正在PHP后盾输入的JSON字符串正在前台javascript中Ajax接纳后eval进去也没有会呈现中文乱码, 由于js正在解决JSON格局数据是也是以UTF8的方式进行的,与PHP相似,故接纳PHP页面的JSON字符串没有会呈现成绩。
更多相干文章,请拜访PHP中文网!
以上就是若何处理php json_encode乱码的成绩的具体内容,更多请存眷资源魔其它相干文章!
标签: php教程 json_encode() php故障解决 php使用问题
抱歉,评论功能暂时关闭!