gpt4 book ai didi

PHP 在 JSON 数组中传回带有特殊字符的对象

转载 作者:行者123 更新时间:2023-11-29 11:01:18 26 4
gpt4 key购买 nike

所有,我有一个 php 文件,它运行 MYSQL 查询并将结果放入数组中。该表有多个字段,其中一个字段包含字符“-”和“%”作为 varchar 字符串的一部分。当我将其传递回 JSON 数组时,它就死掉了。这是代码部分..

PHP 文件

// fetch merit guidelines
$meritGuideline = array();
$sql = "SELECT smg.id, year, ea.rating, ratioUpper, ratioLower, guideline, guidelineNum FROM spot_merit_guide smg JOIN epm_annual ea ON ea.id = smg.rating WHERE year = '$spotYear'";
$query = mysqli_query($con, $sql);
while ($row = mysqli_fetch_assoc($query)) {
$meritGuideline[] = $row;
}
mysqli_free_result($query);

然后我用这个返回它

echo json_encode(array('meritGuideline' => $meritGuideline));

mysql 表字段指南包含字符串 0 - 4%。

最佳答案

首先,尝试将数据编码为 UTF-8:

// fetch merit guidelines
$meritGuideline = array();
$sql = "SELECT smg.id, year, ea.rating, ratioUpper, ratioLower, guideline, guidelineNum FROM spot_merit_guide smg JOIN epm_annual ea ON ea.id = smg.rating WHERE year = '$spotYear'";
$query = mysqli_query($con, $sql);
while ($row = mysqli_fetch_assoc($query)) {
$meritGuideline[] = utf8_encode($row); // ENCODE TO UTF-8
}
mysqli_free_result($query);

然后运行它进行调试:

echo json_encode(array('meritGuideline' => $meritGuideline));
echo 'Error: ' . json_last_error_msg();
  1. 如果上面的第一行确实输出了您的 JSON,那么问题很可能是隐藏的 UTF-8 only 特殊/不可见空格字符,在处理 JSON 编码甚至是 Javascript 代码解析时,这些字符通常会很顽皮。浏览器。以下是这些“特殊”空格字符的一些示例:

    不间断空格:http://www.fileformat.info/info/unicode/char/00a0/index.htm

    零宽度空格:http://www.fileformat.info/info/unicode/char/200b/index.htm

  2. 如果第一行仍然没有输出任何内容,那么第二行将允许您查看 PHP JSON 编码器内部发生的确切错误。

关于PHP 在 JSON 数组中传回带有特殊字符的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42193553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com