json_encode及常見編碼的一些坑
阿新 • • 發佈:2019-02-04
情況一:
$data = [ 'info' => 1, 'data' => [ 'one' => 1, 'two' => 2 ] ]; $info = json_encode($data);
列印結果為:"{"info":1,"data":{"one":1,"two":2}}"
情況二:
$data = [ 'info' => 1, 'data' => [ 1, 2 ] ];
$info = json_encode(data );
列印結果為:"{"info":1,"data":[
就比如情況二的這種,其出來的data裡面的資料依舊是陣列。這個時候可能需要加引數JSON_FORCE_OBJECT
即為這種形式$info = json_encode($data, JSON_FORCE_OBJECT);
其最終的列印結果為:{"info":1,"data":{"0":1,"1":2}}"
Tips:
在編碼的時候,對於一些中文或者特殊符號(such as 空格)等,這個時候就需要urlencode或者rawurlencode,這兩種的區別是:urlencode 對於空格的編碼是+.rawencode對於空格的編碼是%20%
such as :
編碼之前:超級無敵的人sadha sajdh資料樣本sdls fhejrthcxzb.file.jpeg
urlencode:%E8%B6%85%E7%BA%A7%E6%97%A0%E6%95%8C%E7%9A%84%E4%BA%BAsadha+sajdh%E6%95%B0%E6%8D%AE%E6%A0%B7%E6%9C%ACsdls+fhejrthcxzb.file.jpeg
rawurlencode:%E8%B6%85%E7%BA%A7%E6%97%A0%E6%95%8C%E7%9A%84%E4%BA%BAsadha%20sajdh%E6%95%B0%E6%8D%AE%E6%A0%B7%E6%9C%ACsdls%20fhejrthcxzb.file.jpeg