URL传递中文参数乱码问题

项目特殊要求,form表单使用get方式提交,由此出现了中文乱码问题,虽然统一了编码( 个人仍然怀疑编码未统一),但还是出现了乱码,最后只好使用转码方式,在js中先对中文参数转码,在后台使用Java解码。代码如下:
var userName = encodeURI($("#userName").val());
		
$("#userName").val(user_name);

userName = java.net.URLDecoder.decode(userName, "UTF-8");


JS和Java转码

备注:首先确认tomcat中确认配置了编码格式,可参阅 更改Tomcat配置,解决中文乱码问题,一般编码统一后不会出现乱码问题,虽然解决今天的问题,但我仍然怀疑有地方编码不统一造成了此问题!


方法二
在页面前端2次(encodeURI)转码,如下

                	<input name="uds.genericName" id="uds_genericName" type="text" />
                	<a class="btnLook" width="900" height="400" onclick="${jsns}addParam(this)"
                	 href="<%=basePath%>his/his_product_choose.action?uniqueJsns=${jsns}" lookupGroup="">查找</a>


以下JS方法是在点击超链接时附带上一个值(药品名)
	function ${jsns}addParam(a){
		
		var uds_genericName = $("#uds_genericName").val();
		
		if(null != uds_genericName){
			
			uds_genericName = encodeURI(encodeURI(uds_genericName));
			var href = a.href;
			
			var index = href.indexOf('drugName');
			
			if(index>0){
				href = (href.substring(0,index-1));
			}
			
			a.href = (href+"&drugName="+uds_genericName);
		}
	}

你可能感兴趣的:(java,js,unicode,转码)