為什么要編碼
網絡標準對URL做了規(guī)定:"只有字母和數字[0-9a-zA-Z]太惠、一些特殊符號"$-_.+!*'(),"[不包括雙引號]勉抓、以及某些保留字,才可以不經過編碼直接用于URL镣奋。"
編碼的四種情況
- 網址路徑中包含漢字
網址路徑的編碼,用的是utf-8編碼 - 查詢字符串包含漢字
查詢字符串的編碼涌穆,用的是操作系統(tǒng)的默認編碼 - Get方法生成的URL包含漢字
這時的編碼方法由網頁的編碼決定,也就是由HTML源碼中字符集的設定決定 - Ajax調用的URL包含漢字
在Ajax調用中雀久,IE總是采用GB2312編碼(操作系統(tǒng)的默認編碼)宿稀,而Firefox總是采用utf-8編碼
編碼的四個函數
- encodeURI()
- encodeURIComponent()
- decodeURI()
- decodeURIComponent()
區(qū)別在于:
encodeURI方法不會對下列字符編碼
1. ASCII字母
2. 數字
3. ~!@#$&*()=:/,;?+'
encodeURIComponent方法不會對下列字符編碼
1. ASCII字母
2. 數字
3. ~!*()'