【问题标题】:PHP json_encode and utf8_encode not working with my php filePHP json_encode 和 utf8_encode 不适用于我的 php 文件
【发布时间】:2019-01-26 04:16:10
【问题描述】:

我有一些需要编码的 json - 越南语单词。我尝试使用 JSON_UNESCAPED_UNICODE 但看起来它不再工作了。

  header("Content-type: application/json; charset=utf-8");
  $db = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD,DB_DATABASE) or die(mysqli_connect_errno());
  $result = mysqli_query($db,"SELECT * FROM categories") ;
  if (mysqli_num_rows($result) > 0) {
    $response["categories"] = array();
    while ($row = mysqli_fetch_array($result)) {
       $categories["id"] = json_encode($row["id"]);
       $categories["name"]= json_encode($row["name"],JSON_UNESCAPED_UNICODE);
       array_push($response["categories"], $categories);
    }
    $response["result"] = "OK";
    $myJSON = json_encode($response);
    echo $myJSON;
  }

输入:

id=1 name=Truyện Cổ Tích

输出:

id= 1 名称 = 假

这是我第一次尝试 PHP。我的 php 版本是 7.2.8。

【问题讨论】:

标签: php json


【解决方案1】:
  1. 首次运行mysqli_query('SET NAMES utf8')
  2. 通过json_last_error()打印错误信息

【讨论】:

  • 什么也没发生。不显示任何错误。 Json 字符串打印正常,但使用 "Truyện Cổ Tích" 仍然是错误的,并使用 "Truyện Thần Thoại" 得到 "Truy?n Th?n Tho?i"
【解决方案2】:

你必须配置连接SQL,它可以编码集mysqli_set_charset($con,"utf8");

【讨论】:

    猜你喜欢
    • 2014-01-27
    • 2012-07-29
    • 2015-05-03
    • 2013-11-28
    • 1970-01-01
    • 2020-07-20
    • 2016-10-15
    • 2013-07-07
    • 2013-07-09
    相关资源
    最近更新 更多