最近开发一个功能时发现一个问题,希望能得到帮助。
这个功能大致内容是:从前端传入参数{"Name":"张三"},后台JAVA接收参数,并把Name的值加密后通过webservice存入到数据库中。但是,传输过去后发现,在数据库中,Name 字段所有中文字符串都是乱码。而相同内容的中文字符串在main中赋值传输就不会出现乱码。
经过一段时间的调试和排查后,发现是从前端页面input控件中取出的中文字符串编码有问题。同样一段文字,从前端取出传到后台,与在后台直接赋值转换后得到的utf-8字符不一样!而且,同是
String str2 = "张三";
String xmString2 = new String(str2.toString().getBytes("UTF-8"));
String xmlUTF8_2 = URLEncoder.encode(xmString2, "UTF-8");
这一段代码,在Main中执行打印出来的utf8编码,与前端服务映射的java方法中打印出来的结果也不一样,想请问下这是什么原因?谢谢!
具体问题截图:
前端页面填写内容
前端页面填写内容(“张三”即为Name值)
前端服务映射的Java方法,Name为前端传入的中文字符串“张三”
打印内容
main中相同代码执行的结果
|