如何在JSON中打印特殊字符?

时间:2017-10-15 14:05:04

标签: javascript php json special-characters

while ($row = $results->fetch_assoc()) {
    $rows[] = array(
                    'id' => $row['id'],
                    'shipDataLastLocaltion' => $row['SDLLP']
                   );
}

print '{"data": ';
echo json_encode($rows, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);
print "}";
$this->response('', 200);

表中的数据:

 $row['SDLLP'] //-> "Istanbul’Beşiktaş"point:3""

错误屏幕:

  

SyntaxError:JSON.parse:JSON数据第1行第10列的意外字符

错误原因:

这些字符位于表格"

由于这些字符,JSON无效 - 我为此使用了此功能,但它无效。

我尝试使用解决方案htmlspecialchars以及我在互联网上找到的其他方法,但所有方法都不起作用。

这可能是什么解决方案?

3 个答案:

答案 0 :(得分:1)

打印时只需在每个特殊字符前使用反斜杠\。它将开始接受这些字符作为json简单字符串,例如:

\" quotation
\\ backslash 

使用服务器端语言选择数据,并在每个特殊字符前添加反斜杠\,然后创建json并将其返回给客户端。

感谢。

答案 1 :(得分:0)

我想这些来自数据库的不需要的字符。首先,您需要设置排序规则Mysql collation

如果问题仍然存在,则必须使用iconv函数来更改这些单词的编码。

答案 2 :(得分:0)

就够了

// Change character set to utf8
mysqli_set_charset($con,"utf8");

$mysqli->set_charset("utf8");