suchen

Heim  >  Fragen und Antworten  >  Hauptteil

php - Ein von urldecode verarbeiteter String wird in einem Array-Element verwendet, was dazu führt, dass json_encode das Array nicht in einen JSON-String konvertieren kann.

$str = 'Success is 1% inspiration and %99 perspiration';
$urldecodeStr = urldecode($str);
$arr = [
        'doc' => $urldecodeStr
    ];
echo $urldecodeStr; //输出: Success is 1% inspiration and � perspiration
echo "<br>";
var_dump(json_encode($arr));//返回false
  1. Was ist der Grund, warum json_encode nicht konvertiert werden kann?

  2. Gibt es eine Möglichkeit, $urldecodeStr的数组$arr zu verwenden, um normalerweise von json_encode in einen JSON-String codiert zu werden?

淡淡烟草味淡淡烟草味2803 Tage vor648

Antworte allen(3)Ich werde antworten

  • 天蓬老师

    天蓬老师2017-05-24 11:35:54

    问题

    1.json_encode无法转化是由于编码问题,在$str 进行u8转码的时候 %99是一个乱码。
    2.目前并不知道你得%99是什么鬼。
    3.在你urldecode后,输出就已经乱码了

    解决

    1.使用iconv函数进行转码 $str
    2.去掉%99(当然这个看你自己)

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-05-24 11:35:54

    干嘛直接urldecode没有编码的字串

    Antwort
    0
  • 滿天的星座

    滿天的星座2017-05-24 11:35:54

    字符串有问题吧。。。json原则上只支持UTF-8 编码

    Antwort
    0
  • StornierenAntwort