首页 >后端开发 >php教程 >如何使用 PHP 的 json_encode() 函数正确编码 JSON 中的特殊字符?

如何使用 PHP 的 json_encode() 函数正确编码 JSON 中的特殊字符?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-18 17:10:03264浏览

How to Correctly Encode Special Characters in JSON with PHP's json_encode() Function?

JSON 编码和特殊字符

使用 json_encode() 函数对数组进行编码时,可能会发生包含特殊字符的元素被转换为空字符串。对于版权或商标符号等字符,此行为尤其明显。

要解决此问题,请确保所有字符串数据在编码为 JSON 之前均采用 UTF-8 编码。这可以通过将 array_map() 与 utf8_encode() 函数结合使用来实现:

<code class="php">$arr = array_map('utf8_encode', $arr);
$json = json_encode($arr);</code>

正如 PHP 手册中所述,json_encode() 要求所有字符串数据都采用 UTF-8 编码。通过在 JSON 编码之前将数组元素编码为 UTF-8,我们确保特殊字符在 JSON 输出中正确表示。

为了清楚起见,让我们比较使用和不使用 UTF-8 编码数组的结果编码:

不使用 UTF-8 编码:

<code class="php">$arr = ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"];
$json = json_encode($arr); // {"funds":null}</code>

使用 UTF-8 编码:

<code class="php">$arr = array_map('utf8_encode', ["funds" => "ComStage STOXX®Europe 600 Techn NR ETF"]);
$json = json_encode($arr); // {"funds":"ComStage STOXX\u00c2\u00aeEurope 600 Techn NR ETF"}</code>

通过应用 UTF-8 编码,特殊字符可以在 JSON 输出中正确表示。请记住一致使用 utf8_encode() 以获得正确的编码。

以上是如何使用 PHP 的 json_encode() 函数正确编码 JSON 中的特殊字符?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn