ajax請求中URL和參數的編碼問題

1、html的charset標籤:

charset 屬性是 HTML5 中的新屬性,且替換了:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

仍然允許使用 http-equiv 屬性來規定字符集,但是使用新方法可以減少代碼量。

HTML5使用“<meta charset="UTF-8">”來表示頁面使用UTF-8編碼

HTML中使用“<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">”來表示頁面使用UTF-8編碼


2、Ajax請求:URL、POST請求表單參數、URL中GET請求參數的編碼


經自己測試發現:
在IE11、Firefox(48.0.2)、chrome(45.0.2454.101 m)測試,上面的編碼取決於網頁的編碼類型(也就是charset標籤中所設置的編碼,如果沒有設置charset編碼,那麼默認爲系統的編碼類型)
自己查閱了資料測試結果和網上資料有些不一樣,有可能是瀏覽器的版本導致的。
資料上說:ajax請求中URL編碼與瀏覽器類型有關(網上文章);post請求參數由於是在http請求中的body部分,所以其參數編碼取決於網頁的編碼(書中)。兩者說法產生了衝突,可能與作者所處的時間點不一致,導致瀏覽器的版本不一致,所以會有衝突。
網上有文章建議:使用javaScript內置的函數對URL重新編碼


參考資料:

《深入分析JavaWeb技術內幕》

關於URL編碼(針對URL含有中文的參數---http://www.cnblogs.com/kenshinobiy/p/4377365.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章