【问题标题】:json_encode still failing after using utf8_encode使用 utf8_encode 后 json_encode 仍然失败
【发布时间】:2015-12-04 02:19:01
【问题描述】:

我有一个相当大的数组,我正在尝试使用 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);

谁能告诉我为什么这可能仍然失败?

【问题讨论】:

  • 查看以下代码,希望对您有所帮助。
  • 你检查下面的答案,它的工作?
  • 不幸的是没有工作。我什至尝试按照另一篇文章的建议将 htmlspecialchars() 放入。不过我现在已经开始工作了,我只是把每个 URL 都放在 filter_var($link_to_check, FILTER_VALIDATE_URL)

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


【解决方案1】:

试试这个代码,

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

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    相关资源
    最近更新 更多