web前端开发 - PHP输出json到web无法正常显示中文

WBOY
Freigeben: 2016-06-06 20:27:49
Original
1307 Leute haben es durchsucht

PHP从mysql获取数据后,录入数组并转为json。
最后输出的时候,中文显示为"?"。
这个问题是出在服务器还是php?
在数据库里看,中文是能正常显示的。
PHP代码:

<code>    $result = mysql_query("select * from hpsubject");
    while ($row = mysql_fetch_array($result)) {
        $arr = json_encode(array('hps_userid'=>$row['hps_userid'],
                            $row['hps_userid2'], $row['hps_subid'], $row['hps_type'],
            $row['hps_addr'], $row['hps_distance'], $row['hps_title'], $row['hps_feel'], $row['hps_dowhat'],
            $row['hps_text'], $row['hps_img'], $row['hps_like'], $row['hps_repost'], $row['hps_comment'],
            $row['hps_date'], $row['hps_time'], $row['hps_liveline'], $row['hps_deadline']));
    echo $arr;
    }</code>
Nach dem Login kopieren
Nach dem Login kopieren

输出结果:
{"hps_userid":"1","0":"1","1":"1","2":"????","3":"??","4":"50","5":"??","6":"??","7":"????","8":"??","9":"??","10":"100","11":"100","12":"100","13":"2015-09-21","14":"154436","15":"2015-09-21 15:44:36","16":"2015-09-21 15:44:36"}

回复内容:

PHP从mysql获取数据后,录入数组并转为json。
最后输出的时候,中文显示为"?"。
这个问题是出在服务器还是php?
在数据库里看,中文是能正常显示的。
PHP代码:

<code>    $result = mysql_query("select * from hpsubject");
    while ($row = mysql_fetch_array($result)) {
        $arr = json_encode(array('hps_userid'=>$row['hps_userid'],
                            $row['hps_userid2'], $row['hps_subid'], $row['hps_type'],
            $row['hps_addr'], $row['hps_distance'], $row['hps_title'], $row['hps_feel'], $row['hps_dowhat'],
            $row['hps_text'], $row['hps_img'], $row['hps_like'], $row['hps_repost'], $row['hps_comment'],
            $row['hps_date'], $row['hps_time'], $row['hps_liveline'], $row['hps_deadline']));
    echo $arr;
    }</code>
Nach dem Login kopieren
Nach dem Login kopieren

输出结果:
{"hps_userid":"1","0":"1","1":"1","2":"????","3":"??","4":"50","5":"??","6":"??","7":"????","8":"??","9":"??","10":"100","11":"100","12":"100","13":"2015-09-21","14":"154436","15":"2015-09-21 15:44:36","16":"2015-09-21 15:44:36"}

<code class="php">if (function_exists('mysql_set_charset') === false) {
   mysql_query("SET NAMES 'utf8'", $con);
}else{
   mysql_set_charset('utf8', $con);
}</code>
Nach dem Login kopieren

$con 对应 mysql_connect 函数的返回值, 上面的 utf8 改为你数据库的编码(上面的代码放在你执行mysql_query("select * from hpsubject")之前.

然后在你的php文件头部增加一行header('Content-Type: application/json; charset=utf-8'); 其中这里的 utf-8 也改为你数据库中所使用的编码.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage