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
以及我在互联网上找到的其他方法,但所有方法都不起作用。
这可能是什么解决方案?
答案 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");