繁体   English   中英

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

[英]How do I print special characters in JSON?

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和其他在Internet上找到的方法,但所有方法均无效。

有什么解决方案?

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

\" quotation
\\ backslash 

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

谢谢。

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

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

就足够了

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

要么

$mysqli->set_charset("utf8");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM