之前领导给我一个问题,说线上有个乱码问题,让我解决一下,说话语气很轻松,我也以为是个小问题。我就是问了一下当事人,当事人说提交的信息偶尔会有乱码,并不是所有内容都是,可能是内容某一个地方乱码。如果修改提交信息,乱码可能消失。
先说一下结果吧,我当时对这个系统不了解,努力寻找,花了一早上找到并解决了。但之后听当事人说,这个问题有半年了,没人解决,只能每天靠手工更改数据库。
找到的代码如下,你能看出来为什么乱码了么?
private JSONObject getRequestParamJson(ServletRequest request) throws IOException {
StringBuilder sb = new StringBuilder();
try(ServletInputStream inputStream = request.getInputStream()){
byte[] b = new byte[1024];
int temp;
while((temp = inputStream.read(b)) != -1){
sb.append(new String(b, 0, temp, "UTF-8"));
}
}catch(IOException e){
log.error(e.toString());
}
return JSONObject.parseObject(sb.toString());
}
我想P7,P8没解决,一方面是他们已经很久没关注代码了,二是这个是微服务架构,中间环节有问题很难查找,三就是我非常佩服的,他们甩锅能力一留的强,甩了几个月,甩到我头上了!
{{o.name}}
{{m.name}}
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/141385.html