转义JSON撇PHP的json_encode截断过吗?(Escaping JSON apostrop

2019-07-20 13:59发布

我有一个MySQL数据库(utf8_general_ci),其中包含一个卷发(智能?)撇号字段: Owner's...

如果我访问从数据库中拉它的PHP页面这将打印罚款无特殊处理。 不过,我想通过另一个网页上的$ .getJSON请求访问它,所以我用PHP的json_encode。 它截断值,以便它的内容Owner ,然后成功地对数据进行编码的其余部分。 如果我使用PHP的函数utf8_encode在球场上我json_encode之前,它包括与全部价值'编码为\u0092然后没有在页面上打印任何东西,给我的Owners 。 PHP的htmlentities ,并htmlspecialchars没有任何效果。

看在Chrome工具的要求, Owner's显示为Owner s的$ .getJSON页面上。

有人可以帮我从这里出去吗? 我已阅读SO和网络中的其他问题,但我无法找到任何帮助,我没有太多的工作与JSON。

谢谢阅读。

Answer 1:

有关详情: json_encode

例:

echo json_encode($array, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE);


Answer 2:

使用PHP的utf8_encode()我之前json_encode()确实从后切断停止的数据' ,但它也编码它\0092这并没有显示(控制字符)。 当我使用MySQL的SET NAMES utf8我查询之前,我没有使用utf8_encode()所有,而我的JSON与正确编码'映射到\u2019 ,它显示很好。

感谢您的链接@Pekka,它帮助我缩小的可能性。



文章来源: Escaping JSON apostrophe before PHP's json_encode truncates?
标签: php getjson json