雖然escape()、encodeuri()、encodeuricomponent()三種方法都能對一些影響url完整性的特殊字元進行過濾。但後兩者是將字串轉換為utf-8的方式來傳輸,解決了頁面編碼不一至導致的亂碼問題。
例如:傳送頁與接受頁的編碼格式(charset)不一致(假設傳送頁面是gb2312而接收頁面編碼是utf-8),使用escape()轉換傳輸中文字串就會出現亂碼問題。
以下是js下對url進行編/解碼的各種方法:
escape方法:就對@*+/ a-z 0-9 a-z這些字元不編碼,其它非ascii字元都會編碼以%xx編碼替換,解碼使用unescape,escape 方法不能用來對「統一資源識別符號」(uri) 進行編碼。對其編碼應使用 encodeuri 和encodeuricomponent 方法。
encodeuri():對! @ # $ & * ( ) = : / ; ? + ' a-z 0-9 a-z,其它的字元都會被編碼,解碼使用decodeuri();
如果想使更多的字會被編碼,例:/..,請使用encodeuricomponent()方法,被此方法編碼後,引數傳遞給伺服器就是一種無效的字元,解碼使用decodeuricomponent()
處理問題的方法
1.遇到問題不要急躁,盲目的急於去解決這乙個問題。不妨冷靜思考一下,這個問題出現的原因,其他相關頁面會不會出現類似的問題,修改後對其他的頁面會不會產生影響。這樣就可以避免修改部分正常了,卻又出現了新的問題,導致工作量增大。2.對時間明確管理,要明確知道自己的工作量,能夠合理安排自己每天的工作。給自己...
下標處理問題
下標處理問題 主要是針對於插入排序演算法寫的程式,其他情況可以借鑑這些思路。數學上或者通常意義上,下標都是從1開始的,但是在多數程式語言裡面陣列下標都是從0開始的,這就很惱火了,簡單乙個下標處理起來卻異常麻煩!請看 例如 1 典型的陣列下標越界問題 假設有個陣列 a 0 a 1 我們要用插入法排序,...
ORACLE 異常處理問題處理
create or replace procedure pro people as begin select per id into v per id from people where id i id exception when no data found then v per id 1 whe...