有没有办法阻止json_encode()返回null包含无效(非UTF-8)字符的字符串?
在复杂的系统中调试可能会很麻烦.实际看到无效字符会更合适,或者至少省略它.就目前而言,json_encode()将默默地删除整个字符串.
示例(以UTF-8格式):
$string =
array(utf8_decode("Düsseldorf"), // Deliberately produce broken string
"Washington",
"Nairobi");
print_r(json_encode($string));
Run Code Online (Sandbox Code Playgroud)
结果是
[null,"Washington","Nairobi"]
Run Code Online (Sandbox Code Playgroud)
期望的结果:
["D?sseldorf","Washington","Nairobi"]
Run Code Online (Sandbox Code Playgroud)
注意:我不打算在json_encode()中使断字符串工作.我正在寻找方法,以便更容易诊断编码错误.一个null字符串是不是该有所帮助.
我需要通过JSON从我的网站访问其他地方的一些变量.
始终定义所有选项.我的问题是,创建一个人造json或使用它是否更好json_encode.仿json看起来像这样:
{
"data": [
{
"optA": "<?php echo($optA); ?>",
"optB": "<?php echo($optB); ?>",
"optC": "<?php echo($optC); ?>"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我觉得'喜欢嵌套数组并使用json_ecode添加另一步.虽然,我知道一行一行的回声也增加了一些重量.
我倾向于使用,json_encode因为它被广泛使用.我的阵列也不会过于复杂,但绝对比上面的例子更加复杂.