2015-01-16 43 views
-1

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

其中一个字符串包含: -

这会导致消息“警告 [2] json_encode()

异常 'PHPErrorException':无效UTF-8序列中参数

当我打电话json_encode。如果该字符不存在,则该函数调用起作用。我如何确保json_encode支持任何字符,或者不支持的字符被忽略?我一直玩iconv和各种转换,但无济于事。

回答

1

您是否尝试过迭代您的数组并在传递到json_encode之前对每个字符串运行htmlentities

如果问题出在短划线上,那么html编码可能会有所帮助(虽然有几种不同类型的短划线,所以有助于了解PHP具体落在哪个短划线上)。

正如指出的下方,可能需要ENT_SUBSTITUTE(PHP 5.4+)

+0

你能更具体你试试str_replace()? –

+0

'json_encode(ヶ辆($源));' 如果不工作,你可以发布你得到错误使用JSON的样品。 –

+0

json_encode(htmlentities($ source))不能在问题中指定的数组数组上工作。我们必须为数组数组中的每个字符串执行此操作。 –

0

您正在使用en dash。请看here.

为什么不利用这个字符和其相应的HTML数–