cari

Rumah  >  Soal Jawab  >  teks badan

php - Rentetan yang diproses oleh urldecode digunakan dalam elemen tatasusunan, menyebabkan json_encode tidak dapat menukar tatasusunan kepada rentetan json Bagaimana untuk menyelesaikan masalah?

$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. Apakah sebab mengapa json_encode tidak boleh ditukar?

  2. Adakah terdapat cara untuk menggunakan $urldecodeStr的数组$arr untuk dikodkan secara biasa ke dalam rentetan json oleh json_encode?

淡淡烟草味淡淡烟草味2789 hari yang lalu640

membalas semua(3)saya akan balas

  • 天蓬老师

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

    Soalan

    1.json_encode tidak boleh ditukar kerana masalah pengekodan Apabila $str ditukar kepada u8, %99 adalah kod yang tidak betul.
    2 Pada masa ini, saya tidak tahu apa yang anda dapat %99.
    3 Selepas anda urldecode, output akan bercelaru

    Penyelesaian

    1 Gunakan fungsi iconv untuk menukar kod $str
    2

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-24 11:35:54

    Kenapa terus urldecode rentetan yang tidak dikodkan

    balas
    0
  • 滿天的星座

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

    Mungkin ada masalah dengan rentetan. . . Pada dasarnya, json hanya menyokong pengekodan UTF-8

    balas
    0
  • Batalbalas