URL传递中文参数乱码问题

本文介绍了一种解决GET方式提交表单时出现中文乱码的方法。通过在前端使用JavaScript进行两次encodeURI转码,然后在后端用Java进行解码来解决乱码问题。此外还提供了确认Tomcat配置中的编码格式的方法。
项目特殊要求,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.youkuaiyun.com/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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值