1. 程式人生 > >json_encode及常見編碼的一些坑

json_encode及常見編碼的一些坑

情況一:

$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":[

1,2]}"

就比如情況二的這種,其出來的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