url 發送中文參數亂碼
..............................tomcat
產生緣由
- Tomcat 對URL 的編碼缺省是按 ISO-8859-1
- request.setCharaterEncoding() 只做用於請求數據<request-body>內的字符編碼,url傳值是get提交,get數據放在HTTP請求報文的請求行<request-line>而不是請求數據<request-body>,因此對 URL 傳值無效
HTTP請求報文由請求行<request-line>、請求頭部<headers>、空行<blank line>和請求數據<request-body>
get 的數據放在HTTP請求報文的請求行<request-line>中
post 的數據放在HTTP請求報文的請求數據<request-body>中post
解決方法
- 修改tomcat的配置文件,在 server.xml中的Connector添加URIEncoding="UTF-8"
- 獲取的時候進行轉碼 String str = new String(request.getParameter("ptname").getBytes("ISO-8859-1"), "UTF-8");