Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php json_encode因字符错误而崩溃_Php_Json_Character Encoding - Fatal编程技术网

Php json_encode因字符错误而崩溃

Php json_encode因字符错误而崩溃,php,json,character-encoding,Php,Json,Character Encoding,我有一个数组。每个内部数组都有字符串元素 其中一个字符串包含:– 这导致 带有消息“警告[2]的异常“phperroreException” json_encode():参数中的UTF-8序列无效 当我调用json\u encode时。如果字符不存在,则函数调用有效。如何确保json\u encode支持任何字符,或者忽略不支持的字符?我一直在玩弄iconv和各种转换,但都没有用。在传递到json\u encode之前,您是否尝试过迭代数组并对其中的每个字符串运行htmlentities 如果问

我有一个数组。每个内部数组都有字符串元素

其中一个字符串包含:–

这导致

带有消息“警告[2]的异常“phperroreException” json_encode():参数中的UTF-8序列无效


当我调用
json\u encode
时。如果字符不存在,则函数调用有效。如何确保
json\u encode
支持任何字符,或者忽略不支持的字符?我一直在玩弄
iconv
和各种转换,但都没有用。

在传递到
json\u encode
之前,您是否尝试过迭代数组并对其中的每个字符串运行
htmlentities

如果问题出在破折号上,那么html编码可能会有所帮助(尽管破折号有几种不同的类型,因此了解PHP所使用的破折号会有所帮助)


正如下面所指出的,可能需要
ENT\u替换
(PHP5.4+)

您正在使用的
en dash
。请看


为什么不尝试使用这个字符
及其对应的HTML编号

你能更具体一点吗?
json_编码(htmlentities($source))
如果这不起作用,您可以发布一个您遇到错误的JSON示例吗?JSON_encode(htmlentities($source))将不适用于问题中指定的数组数组。我们必须对数组数组中的每个字符串执行此操作。我已经指定了有问题的字符。尝试使用数组(0=>数组(0=>“–”);不需要确切的例子。问题是某些字符不受支持。我们不应该沉浸在细节中。我们需要一些细节。。。。您如何运行json_encode?你是在循环你的数组吗?您确定PHP失败的破折号字符与上面键入的破折号字符相同吗?没有一个确切的例子,我不知道你的代码是失败的!