解决UTF 您所在的位置:网站首页 甘肃建投最新招聘信息 解决UTF

解决UTF

2024-05-28 00:29| 来源: 网络整理| 查看: 265

这次的开发任务是和银行交互数据。本地应用的java文件编码格式是GBK,通信方式采用httpclient,调用httpclient的时候设定的请求参数格式为UTF-8。银行的java文件编码格式是UTF-8,post返回数据格式也是为UTF-8,post之前没有显示的进行任何编码转换。 本地应用得到银行post过来的键值对,其中有值为中文的显示为乱码。 初步判断问题为UTF-8和GBK之间编码解码不是用的同一套方式。在本地代码中先想到的是将银行的UTF-8编码的中文,转换为GBk编码,这样应该就正常了吧。 respMsg = "浜ゆ槗鎴愬姛" respMsg = new String(respMsg.getBytes("UTF-8"),"GBK"); 这样做之后,问题依然没有解决,仔细想了一下,这样做咋一看确实没有啥问题,银行的UTF-8变为本地的GBk,但仔细一想,既然本地应用得到了post的数据,本地java文件的编码格式又为GBk,显然此时本地应用将银行post过来的中文编码格式不论是什么格式,都认为是GBK,按照GBK解码,所以就出现了乱码。找到问题的根源,就好办了,既然乱码的原因是将UTF-8编码的中文,解码时用了GBk来解码,那么解决办法就应该是将乱码重新用GBK编码,再用UTF-8解码。 respMsg = new String(respMsg.getBytes("GBk"),"UTF-8");

respMsg = "交易成功"

It's work!

总结

个人觉得,乱码的原因一般是编码和解码的方式不是用的同一套格式所致,要想恢复乱码,必须对症下药,找到当初的编码格式,这样一般都能解决乱码问题。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有