V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lyp111332
V2EX  ›  PHP

PHP 发送 json 代码,客户端接收乱码问题

  •  
  •   lyp111332 · 2016-04-21 12:49:03 +08:00 · 2717 次点击
    这是一个创建于 3139 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <?php

    $db_connect=mysql_connect("localhost","root","root") or die("Unable to connect to the MySQL!");

    //选择一个需要操作的数据库
    mysql_select_db("emp",$db_connect);
    mysql_set_charset('utf8',$db_connect);
    //执行 MySQL 语句
    $result=mysql_query("SELECT * FROM tianqi");

    //提取数据
    $row=mysql_fetch_row($result);
    $n = 0;
    $result = mysql_query("SELECT * FROM tianqi");
    while ($row = mysql_fetch_array($result)) {
    $arr[$n++] = array(
    "id" => $row['id'],
    "location" => $row['location'],
    "oxygen" => $row['oxygen'],
    "negative" => $row['negative'],
    "humidity" => $row['humidity'],
    "temp" => $row['temp'],
    "pm" => $row['pm'],
    "createtime" => $row['createtime']
    );
    }

    echo json_encode($arr,JSON_UNESCAPED_UNICODE);

    以上代码是我发送给客户端的代码 在网页上打印出来的 json 数据是正确的,但是在客户端接收的数据中,有中文的就变成乱码了
    8 条回复    2016-04-21 15:44:03 +08:00
    zeevin
        1
    zeevin  
       2016-04-21 13:00:23 +08:00   ❤️ 1
    去掉 JSON_UNESCAPED_UNICODE
    iyaozhen
        2
    iyaozhen  
       2016-04-21 13:03:51 +08:00 via Android   ❤️ 1
    JSON_UNESCAPED_UNICODE
    这个参数大多是为了显示好看,数据要传输的话还是去掉吧
    b821025551b
        3
    b821025551b  
       2016-04-21 13:04:41 +08:00
    @zeevin 如果是 iOS 设备使用接口最好不要去掉 JSON_UNESCAPED_UNICODE 。
    设置一下 header 为 utf8 试试
    BOYPT
        4
    BOYPT  
       2016-04-21 13:14:21 +08:00   ❤️ 1
    json 标准要求是全部 unicode 传输的,如果设置 header 的话就要设置成 unicode 而不是 utf-8 吧。
    php 并不支持 unicode 串,所以一楼的意见没错。
    lmaq
        5
    lmaq  
       2016-04-21 13:20:57 +08:00
    注意编码
    lyp111332
        6
    lyp111332  
    OP
       2016-04-21 13:23:03 +08:00
    @b821025551b 需要传输到安卓和 ios 设备上的
    b821025551b
        7
    b821025551b  
       2016-04-21 13:35:14 +08:00
    @BOYPT 感谢指正,查了一下确实是这样。当初做外包的时候 iOS 那边告诉我不要在 json 里用\u 这种格式,不然他们解析不了 囧
    nasta
        8
    nasta  
       2016-04-21 15:44:03 +08:00
    伟大的 PHP 返回 json 大多不设置 Header 的 Content-Type ,也不注意字符的编码问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   900 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:02 · PVG 06:02 · LAX 14:02 · JFK 17:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.