欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

URL传递中文参数乱码问题

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

$("#userName").val(user_name);

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


[url=http://blog.csdn.net/yangbobo1992/article/details/8173387]JS和Java转码[/url]

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


方法二
在页面前端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);
}
}


[url=http://note.youdao.com/share/?id=7357b2668bdb309a10e41d46cf3d20ea&type=note]JS正则获取子表达式内容[/url]