java web中文编码解码

引用

此代码将request中的请求转换为参数的map
1.queryString其中的中文通过URLEncoder.Encode("你我他", "utf-8");
2.post的时候的流编码为utf-8

public static Map getParameterMap(HttpServletRequest request) {
	    // 参数Map
	    Map properties = request.getParameterMap();
	    // 返回值Map
	    Map returnMap = new HashMap();
	    Iterator entries = properties.entrySet().iterator();
	    Map.Entry entry;
	    String name = "";
	    String value = "";
	    while (entries.hasNext()) {
	        entry = (Map.Entry) entries.next();
	        name = (String) entry.getKey();
	        Object valueObj = entry.getValue();
	        if(null == valueObj){
	            value = "";
	        }else if(valueObj instanceof String[]){
	            String[] values = (String[])valueObj;
	            for(int i=0;i<values.length;i++){
	                value = values[i] + ",";
	            }
	            value = value.substring(0, value.length()-1);
	        }else{
	            value = valueObj.toString();
	        }
	        returnMap.put(name, value);
	    }
	    // 处理get方式queryString的参数
	    String query = request.getQueryString();
	    if(query != null){ 
            String[] expressions = query.split("&"); 
            for(String expression : expressions){ 
                String[] parts = expression.split("="); 
                if(parts.length == 2){ 
                	//将上面这段修改为
                	try{
                		// utf-8 解码
	                    String str = URLDecoder.decode(parts[1], "UTF-8"); 
	                    returnMap.put(parts[0], str);	
                	} catch(Exception e) {
                		
                	}
                } 
            } 
        } 
 
	    // 处理get的循环queryString
	    return returnMap;
	}

猜你喜欢

转载自shakeking.iteye.com/blog/2022794
今日推荐