【问题标题】:json_encode not working with urldecodejson_encode 不适用于 urldecode
【发布时间】:2015-11-13 11:08:39
【问题描述】:

json_encode 不适用于 urldecode。请给出解决方案

<?php
$decode_str = array();
$str = "%ED%A0%BD%ED%BA%97%D9%BE%D8%B1%D8%A7%DB%8C%D8%AF+89%D8%A8%D8%AF%D9%88%D9%86+%D8%B1%D9%86%DA%AF.+%D8%AA%DA%A9+%D8%B3%D9%88%D8%B2%ED%A0%BD%ED%BA%97";

$decode_str['output'] = urldecode($str);
echo json_encode($decode_str);
?>

【问题讨论】:

    标签: php json decode urldecode


    【解决方案1】:

    如果在最后加上echo json_last_error_msg();,会看到有json错误。

    Malformed UTF-8 characters, possibly incorrectly encoded
    

    您尝试编码的字符串包含格式错误的 UTF-8 字符。您需要先修复字符编码,然后才能将其编码为 json。

    【讨论】:

      【解决方案2】:

      也可以使用 utf8_decode()。

      $decode_str = array();
      
      $str = "%ED%A0%BD%ED%BA%97%D9%BE%D8%B1%D8%A7%DB%8C%D8%AF+89%D8%A8%D8%AF%D9%88%D9%86+%D8%B1%D9%86%DA%AF.+%D8%AA%DA%A9+%D8%B3%D9%88%D8%B2%ED%A0%BD%ED%BA%97";
      
      $decode_str['output'] = utf8_decode(urldecode($str));
      
      echo json_encode($decode_str);
      

      【讨论】:

        猜你喜欢
        • 2017-08-11
        • 2018-10-10
        • 2012-08-20
        • 1970-01-01
        • 2020-11-20
        • 1970-01-01
        • 2012-07-29
        • 2014-01-27
        • 2015-05-03
        相关资源
        最近更新 更多