js php字元及url的處理

2021-06-07 08:26:55 字數 1076 閱讀 9869

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...