| 16 | | |
| 17 | | String queryString = request.getQueryString(); |
| 18 | | String requestEncoding = getParam(queryString,"req_enc"); |
| 19 | | String responseEncoding = getParam(queryString,"resp_enc"); |
| 20 | | if(isNotBlank(requestEncoding)){ |
| 21 | | request.setCharacterEncoding(requestEncoding); |
| | 16 | 注意:需要用getQueryString(),不能用getParameter() |
| | 17 | String queryString = request.getQueryString(); |
| | 18 | String reqEnc = getQueryValue(queryString,"req_enc="); |
| | 19 | if(reqEnc!=null){ |
| | 20 | request.setCharacterEncoding(reqEnc); |
| | 21 | } |
| | 22 | String respEnc = getQueryValue(queryString,"resp_enc="); |
| | 23 | if(respEnc!=null){ |
| | 24 | //out.println(respEnc); |
| | 25 | response.setCharacterEncoding(respEnc); |
| | 26 | } |
| | 27 | String getQueryValue(String queryString,String key){ |
| | 28 | if(queryString==null || queryString.length()==0)return null; |
| | 29 | int reqIdx = queryString.indexOf(key);//req_enc=utf-8&resp_enc=gbk |
| | 30 | if(reqIdx!=-1){ |
| | 31 | reqIdx = reqIdx+key.length(); |
| | 32 | int endIdx = reqIdx; |
| | 33 | for (; |
| | 34 | endIdx < queryString.length() && queryString.charAt(endIdx)!='&'; |
| | 35 | endIdx++) { |