使用utf8_encode后,json_encode仍然失败

时间:2015-09-08 11:51:01

标签: php json encoding utf-8 character-encoding

我有一个相当大的数组我尝试使用php的json_encode函数转换为json对象。这个数组主要由URL组成,当我print_r到一个文件时,通常是3-10mb。它通常在95%的时间内工作,但是一些特殊字符在那里偷偷摸摸导致JSON_encode失败。所以我认为下面的代码可以解决这个问题,但我仍然会收到JSON_ERROR_UTF8。

array_walk_recursive($job_return_data, function(&$item, &$key){
    $item = utf8_encode($item); $key = utf8_encode($key);
});

$job_return_data_json = json_encode($job_return_data);

有人能告诉我为什么这可能会失败吗?

1 个答案:

答案 0 :(得分:0)

试试这段代码,

$input = iconv('UTF-8', 'UTF-8//IGNORE', utf8_encode($input));
$json = json_decode($input);

希望对你有所帮助。