"ComStage STOXX®Europe 600 Te-6ren">
gpt4 book ai didi

php - json_encode函数: special characters

转载 作者:IT老高 更新时间:2023-10-28 12:47:03 24 4
gpt4 key购买 nike

使用 json_encode 对数组进行编码时,包含特殊字符的数组元素将转换为空字符串:

$arr = array ( "funds" => "ComStage STOXX®Europe 600 Techn NR ETF", "time"=>....);
$json = json_encode($arr);

在 JSON 编码后,元素 [funds] 为空。它只发生在特殊字符(版权、商标等)上,例如“ComStage STOXX®Europe 600 Techn NR ETF”中的字符。

有什么建议吗?

谢谢

更新:这是在填充数组之前解决问题的方法(所有名称均来自数据库):

$mysqli->query("SET NAMES 'utf8'");

最佳答案

The manual for json_encode specifies this:

All string data must be UTF-8 encoded.

因此,在编码之前尝试 array_mapping utf8_encode() 到您的数组:

$arr = array_map('utf8_encode', $arr);
$json = json_encode($arr);

// {"funds":"ComStage STOXX\u00c2\u00aeEurope 600 Techn NR ETF"}

作为引用,看看 the three examples on this fiddle 之间的区别.第一个不使用字符编码,第二个使用 htmlentities,第三个使用 utf8_encode - 它们都返回不同的结果。

为了一致性,你应该使用 utf8_encode()

Docs

关于php - json_encode函数: special characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20694317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com