js對文字進行編碼涉及3個函式:escape, encodeuri, encodeuricomponent,相應3個解碼函式:unescape,decodeuri,decodeuricomponent
1、傳遞引數時需要使用encodeuricomponent,這樣組合的url才不會被#等特殊字元截斷。
例如:
2、進行url跳轉時可以整體使用encodeuri
例如: location.href=encodeuri(中國&ct=21);
使用這個方法編碼的字元在php中可以使用urldecode()函式反編碼
3、js使用資料時可以使用escape
escape對0-255以外的unicode值進行編碼時輸出%u****格式,其它情況下escape,encodeuri,encodeuricomponent編碼結果相同。
escape不編碼字元有69個:*,+,-,.,/,@,_,0-9,a-z,a-z
encodeuri不編碼字元有82個:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,a-z
encodeuricomponent不編碼字元有71個:!, ',(,),*,-,.,_,~,0-9,a-z,a-z
htmlspecialchars(),htmlspecialchars_decode()
htmlentities(),html_entity_decode()
urlencode();urldecode()
rawurlencode();rawurldecode()
1.資料存入db時存入原始資料;
2.接入層得到db資料時,需要對需要在頁面展示字串資料及url進行安全轉義(htmlspecialchars),以便於正常顯示而不是去執行指令碼;
3.如果接入層(如php測)沒有對輸出資料做轉義,則需要頁面測在顯示之前做轉義,只使用於js填充頁面,填充前指定頂字元做轉義替換。
url中包含特殊字元及處理辦法
問題 在spring boot中使用rest api風格呼叫介面,引數出現帶特殊字元的資料,如姓名xx.yy,或者,號分割的字串 例如 http localhost 8080 business joinbiz xx.yy http localhost 8080 business joinbiz x,...
URL中特殊字元處理
如果你的表單使用get方法提交,並且提交的引數中有 等特殊符的話,如果不做處理,在service端就會將 後面的作為另外乙個引數來看待。例如 表單的action為list.jsf?act go state 5 則提交時通過request.getparameter可以分別取得act和state的值。如...
python異常處理及Url編碼
url編碼 import traceback import urllib.parse s besttest 自動化測試 print urllib.parse.quote s url編碼 print urllib.parse.quote plus s url編碼,src print urllib.pa...