鹤壁网站优化,百度平台app下载,网站上的聊天框怎么做的,海淀做网站好的公司现在需求是在浏览器里面直接发请求#xff0c;浏览器发请求#xff0c;默认发的是get请求#xff0c;然后带参数#xff0c;参数包含中文汉字。麻烦就在这里#xff0c;参数里面的汉字#xff0c;在后台接收的时候#xff0c;是乱码。 这么简单的传递参数的方式#xf…现在需求是在浏览器里面直接发请求浏览器发请求默认发的是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”);
结果还就真的成功了。 前端的请求不需要去两次编码后段就可以直接拿到非乱码的值。OK
4有的说结果成功------对于特殊字符是不怎么支持的
encodeURI(encodeURI(“geos汉字传递测试.xls”))
这么干在前台发请求的时候给中文汉字参数来两次编码如上然后后台不变。解码一次具体看截图。 哎竟然OK啦。
good
但是
哎一遇到但是就是文章的转折点啦。要出现坑了注意啦。
关于特殊字符的测试。
可以看到也是经过了2此的编码但是到后台之后发现还是出现了部分偏差。
具体就看图中的偏差吧反正是前后台不一致啦这就是问题啦。
最后
除非是要搞死人的需求不然不带这么玩的。因为这个2次转码也不是百分百安全的。
所以咱还是要么不带中文汉字参数要么咱就换个请求方式吧。
简单的都不安全这不跟hashmap和hashtable一个道理吗
简单的快捷的他就线程不安全。
安全的他实现就复杂。