【问题标题】:Json not encode my Special CharacterJson 不编码我的特殊字符
【发布时间】:2016-02-26 00:40:01
【问题描述】:

我的数据库表有这两个字段:

标题 = 测试标题 描述 = CREDITO FISCAL OCDE CFDI AMPAROS REVISIÓN ELECTRÓNICA REGLAMENTO ISR RIF 编号:44

而且我的 json 响应总是以空描述返回给我。我注意到 json 无法编码这个字符 [Ó] ?

[
    {
        "title":"Testing Title",
        "description":null,
        "id":"44"
    }
]

有人可以帮忙吗?

这里我如何编码 json 数组

回显 json_encode($response);

【问题讨论】:

  • json_encode() 仅适用于 utf-8,您肯定有编码问题。输入来自哪里,您使用什么编码(输入和输出)
  • 当我直接显示描述时,它工作正常,但使用 json 返回 null。
  • 您可以在您的json_encode() 之后添加echo json_last_error_msg(); 并向我们展示输出吗?

标签: php json curl


【解决方案1】:

也许这个例子会让事情更清楚一点:

<?php

$dbData = [[
    "title" => "Testing Title",
    "description" => "REDITO FISCAL OCDE CFDI AMPAROS REVISIÓN ELECTRÓNICA REGLAMENTO ISR RIF",
    "id" => 44
]];

$dbDataUTF8 = array_map("utf8_encode", $dbData[0]);

echo json_encode($dbDataUTF8, true);
?>

根据$dbData 的编码,此代码将输出如下内容:

[{"title":"Testing Title","description":"REDITO FISCAL OCDE CFDI AMPAROS REVISI\u00c3\u0093N ELECTR\u00c3\u0093NICA REGLAMENTO ISR RIF","id":"44"}]

或者这个:

[{"title":"Testing Title","description":"REDITO FISCAL OCDE CFDI AMPAROS REVISI\u00d3N ELECTR\u00d3NICA REGLAMENTO ISR RIF","id":44}]

希望有帮助

【讨论】:

  • 是的,但我的观点是我的数据库表在我用 json 解析时在描述中有数据只是重新运行我 null 而不是数据库中已经存在的描述文本
  • 非常适合我。当我解码 json 响应时的一个问题,我如何删除这个字符?例如:\u 等
  • 您不必做任何特别的事情。在 PHP 中,您只需要使用 json_decode() 即可正确转换所有内容。在 Javascript 中,你也不需要任何特别的东西。只需执行您的JSON.parse(yourJsonString),它就会转换一切正常。
  • 我在 android 中解析它会一样吗?
  • 如果您在 Android 设备上的浏览器中使用它,只要该浏览器可以运行 jQuery 并知道 JSON-object 就可以了。简而言之:是的,不应该是一个问题,并且会起作用。
猜你喜欢
  • 1970-01-01
  • 2021-01-25
  • 2013-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
相关资源
最近更新 更多