響應編碼和請求編碼及URL編碼


一.響應編碼和請求編碼

  1.響應編碼:服務器發給客戶端文本內容(html,css等文本)之前進行對響應體的編碼

    一般在發送響應體代碼之前,調用response.setContentType("text/html;charset=utf-8")的方法即可設置UTF-8編碼並且告訴瀏覽器自己用的是UTF-8編碼這兩個作用

    注意:response.setContentType("text/html;charset=utf-8")是服務器發給客戶端的情況下,設置編碼為UTF-8,而不是客戶端發給服務器時,將客戶端發送的內容用UTF-8解碼;

  2.請求編碼:客戶端發給服務器請求之前進行對地址欄參數或表單內容等的編碼

    現在谷歌瀏覽器已經默認是UTF-8,而tomcat8及后的版本都是默認UTF-8來對GET請求參數解碼了,但是POST請求參數仍然還是ISO解碼;tomcat7及之前不管是GET還是POST都是ISO來解碼;

    POST請求參數獲取前:request.setCharacterEncoding("utf-8");

    而GET請求已經不需要了,默認是UTF-8了;

    一般瀏覽器發送請求一般2種情況:

        (1)在地址欄帶參數發送請求,現在谷歌瀏覽器對參數的編碼是UTF-8

        (2)在頁面點擊鏈接或者提交表單自己填寫的內容,但是這個看服務器發給瀏覽器的頁面是什么編碼的,如果是UTF-8編碼,則頁面所有的鏈接或表單發送的所有請求編碼就是UTF-8;

    

二.URL編碼

  1.URL編碼不是字符編碼,它的目的是把中文等易於在傳輸過程中丟失字節的這種運輸方式轉換為網絡運輸中適合的方式,防止運輸過程中數據的丟失。

    瀏覽器發送get的請求沒有URL編碼,表單POST請求是由URL編碼的。一般服務器會自動URL識別並解碼。

    URL編碼和URL解碼的方法如下:

       URLEncoder.encode("name","utf-8");      URL編碼

       URLDecoder.decode("name","utf-8");   URL解碼

    雖然瀏覽器get的請求沒有URL編碼,但是我們可以通過以上方法的設置,不過html不能寫java代碼,得到JSP里面寫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM