解決辦法: 採用js對url中的漢字進行escape編碼。
複製** **如下:
php?p_sort='+escape('php開發資源網'));">
這樣點選鏈結後的效時:
引用:程式設計客棧ist.php?p_sort=php%u5f00%u53d1%u8d44%u6e90%u7f51
生成了這樣的效果, 很明顯用php的urldecode()或者base64_decode()是無法反解的。
解決方法, 用php寫乙個反解函式:
複製** **如下:
function js_unescape($str)
else if ($str[$i] == '%')
else $ret .= $str[$i];
}return $ret;
}注意js編碼會自動轉換成為utf-8, 所以必須進行編碼轉換才能得到正確的結果,否則會中文亂碼。
複製** **如下:
print iconv('utf-8', 'gb2312', js_unescape($_request['p_sort']));
到此我們就成功地反解了js的escape編碼了。
另外我找到個用php實現js的escape編碼的函式:
複製** **如下:
function phpescape($str) else }
return $retrunstring;
}
本文標題: 關於js和php對url編碼的處理方法
本文位址: /wangluo/php/105976.html
js對url進行編碼和解碼
只有 0 9 a z 以及某些保留字,才能不經過編碼直接用於 url。例如 搜尋的中文關鍵字,複製 之後再貼上就會發現該url已經被轉碼。原理 對除ascii字母 數字 標點符號 以外的其他字元進行編碼。編碼 escape 結果 escape 張 結果 u5f20 解碼 unescape http ...
Python對URL編碼和解碼
在做介面測試時,時常會發現抓取的介面引數中含有這種資料 3d 5b 7b 22mainspucode 22 3a 22spu66668 22 2c 22mainskucode 22 3a 22536963999401508874 當請求資料為字典data 且引數中包含中文或者?等特殊符號時,需要通過...
js中的url編碼
看下邊這個url串 1 back 在go頁面用c 的request.querystring肯定無法獲取正確的back引數.back的引數值會是 而js呼叫go頁面時就需要對back引數裡的url串進行url編碼才行.escape 方法 採用iso latin字符集對指定的字串停止編碼。所有的空格符 ...