.net后台怎么取得sessionstorage里面的值_get请求URL传中文参数后台接收乱码的解决之道...

现在需求是在浏览器里面直接发请求,浏览器发请求,默认发的是get请求,然后带参数,参数包含中文汉字。麻烦就在这里,参数里面的汉字,在后台接收的时候,是乱码。
这么简单的传递参数的方式,是不OK的。
下面看详情。
这个就是简单的在URL里面带中文汉字参数,然后,就在后台乱码了,哦。这就悲剧啦。1,有的人说:(结果:失败)
后台解码的时候,如下,
String setMetricText = URLDecoder.decode(setMetricValue, "UTF-8");
这么滴可以解决问题,我就尝试一下,如下。
我这个处理方式呢,前台发送请求方式,还是跟上面那样,直接发请求,未对中文汉字参数做任何编码方面的修改。
结果,也就如上图那样,还是乱码。2,有的说:(结果:失败)
在前台发请求的时候,给参数编码一下。后台再解码一下。
encodeURI("geos汉字传递测试.xls")
然后,把编码过的参数,给添加到URL里面去,如下
不信的你可以自己试验一把,把下面编码过的参数放到浏览器的URL里面,然后,一回车,就变成如上图的情况啦。
然后,后台还是乱码依旧。
尴尬啦。还是不OK。3,有的说:(结果:失败------因为编发格式写反了,给修正一下这个就能用啦。)
后台解码姿势换了一种,
filePath = new String(filePath.getBytes("utf-8"), "ISO-8859-1");
后台这么干,前台直接发请求,不编码,试试。
结果如下:
还是乱码。不OK。
后来有人留言说我上面代码写反了,应该如下这么写,就好。
filePath = new String(filePath.getBytes("ISO-8859-1"), "utf-8");
结果还就真的成功了。
前端的请求不需要去两次编码,后段就可以直接拿到非乱码的值。OK4,有的说:(结果:成功------对于特殊字符是不怎么支持的)
encodeURI(encodeURI("geos汉字传递测试.xls"))
这么干,在前台发请求的时候,给中文汉字参数,来两次编码,如上,然后,后台不变。解码一次具体看截图。
哎,竟然OK啦。
good
但是,
哎,一遇到,但是,就是文章的转折点啦。要出现坑了,注意啦。
关于特殊字符的测试。
可以看到,也是经过了2此的编码,但是,到后台之后,发现,还是出现了部分偏差。
具体就看图中的偏差吧,反正是前后台不一致啦,这就是问题啦。
最后,
除非是要搞死人的需求,不然,不带这么玩的。因为这个2次转码,也不是百分百安全的。
所以,咱还是要么不带中文汉字参数,要么咱就换个请求方式吧。
简单的都不安全,这不跟hashmap和hashtable一个道理吗?
简单的,快捷的,他就线程不安全。
安全的,他实现就复杂。

欢迎工作一到五年的Java工程师朋友们加入Java技术交流:585550789

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值