url传递中文参数笔录

url传递中文参数笔录

我们在处理一些遗留系统的时候,通常有可能遇到处理有一些链接是带有中文,而且是传递到另一个页面的,而这另一个页面有可能把拿到的数据放到数据库中去,这时候往往会造成乱码的问题,特别在不同的系统的时候更是如此.

假定,我们现在有一个name的参数,能通过"/pages/a.jsp?name=博客"传递到下一个页面,这时候,我们可以这样做:

1、首先用JS的encodeURI的方法作一些转换,如下
[code]passName = encodeURI(name);[/code]
转换之后的字符会产生一些"%"字符,而这一些字符在URL的时候通常是不能传递的,或者通常出问题的;所以我下一步这样做:
[code] function ReplaceAll(oriStr,oldStr,newStr){
if(oriStr == null || oriStr == "")
return "";
if(oriStr.indexOf(oldStr) == -1)
return oriStr;
oriStr = oriStr.replace(oldStr,newStr);
return ReplaceAll(oriStr, oldStr, newStr);
}[/code]
在定义了一个ReplaceAll函数后,我们接着可以这样写:
[code]passName = ReplaceAll(passName,"%","_PERCENT_");[/code]
这个时候,前台转化的工作完成,就把passName挂到链接中去即可啦.

2、接下来就是后台方面的工作啦:
根据参数取得值,然后再用String的repaceAll方法把值转换回来。
[code] name = request.getParameter("name").replaceAll("_PERCENT_", "%");[/code]
这样就行了吗?还差一步啦,接着就用java的URLDecoder.decode转换一下就大功告成啦,没有什么复杂的东西啦.
[code] name = URLDecoder.decode(name,"UTF-8");[/code]

总结:url传递中文参数最好解决办法就是---不要在url传递中文参数
  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值