表單提交的中文亂碼問題

這裏寫圖片描述 表單提交的碼錶分析

  1. 客戶端與服務器進行數據的傳遞是通過字節碼來傳遞的,客戶端的中文字符的編碼方式查找的是content=”text/html; charset=UTF-8”,當服務器得到字節碼時,調用getParameter()方法進行解碼,該方法默認採用的是iso8859-1來進行解碼。
  2. 由上述分析可得 解決亂碼問題有倆種方式
    2.1 改變getParameter()方法的默認解碼方式
   /**
         * 設置調用個體Parameter方法時查詢的編碼
         * 該方法只能對請求實體內容的數據編碼起作用。POST提交的數據在實體內容中,所以該方法對POST方法有效!
         * GET方法的參數放在URI後面,所以對GET方式無效!!!所以get方式提交的表單不能用此方式來設置解碼方式
         */
        request.setCharacterEncoding("utf-8");  
  2.2把得到的以iso8859-1解碼的字符串從新進行編碼(萬能解碼方式--此方式操作不便,需要對每個數據都進行編碼設置)
String name = request.getParameter("name");
name = new String(name.getBytes("iso-8859-1"),"utf-8");
  2.3get方式提交的表單可通過修改服務器的解碼方式來解決中文亂碼問題
   例如 :在tomcat服務器中找到server.xml文件  找到如下位置配置成如下代碼
<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443"
               URIEncoding="utf-8" />   //設置uri的編碼
發佈了22 篇原創文章 · 獲贊 11 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章