在用一個某開源插件做封裝,想要傳一些參數進去。
多數字段都是普通字符串參數,但是有一個字段傳的是json,結果發現這個插件一看到大括號和雙引號就識別錯誤了。
不想改這個插件的源碼,考慮自己傳進去的時候轉譯一下。實測url_encode和base64都可用。
沒有任何加密需求(傳輸走的https。兩端接口的這個字段都是公開的,誰看到都無所謂)。
想知道url_encode和base64哪個更好
不是urlencode?前者適合於URL里的參數,后者更適合傳輸二進制數據。功能上其實沒什么差別
base64編碼后的長度比編碼前多了1/3,標准的Base64並不適合直接放在URL里傳輸,有一些Base64的變種,它們將+/=等符號轉換為其他符號(如_-)
建議使用rawurlencode
php中使用url_encode是不區分英文不變的,而且對於二進制效率也不高;base64兼容性好點,但是生成的編碼會比數據源多33%左右。
ajax基本沒什么不能傳輸,你文中遇到"一看到大括號和雙引號",那么在提交之前對字段進行處理下.至於處理方式多種多樣,比如數組最簡單的序列化和反序列化.
