这次的开发任务是和银行交互数据。本地应用的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!

总结

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

解决UTF-8和GBK之间转换乱码问题相关推荐

  1. java 转换gbk编码,java中GBK转UTF-8乱码的解决方法

    java中GBK转UTF-8乱码的解决方法 如果自己采用的是GBK编码,对方采用得到是UTF-8编码,发送数据时需要将GBK编码数据转换成UTF-8编码数据,这样对方才不会乱码. 问题出现:GBK转U ...

  2. java ucs2转utf8_Unicode,UTF8,GB2312,UCS2,GBK之间的转换

    Unicode,UTF8,GB2312,UCS2,GBK之间的转换 平时用到的几种编码格式转换.平时用的不是很多.但是在做短信协议的时候,就经常遇到了.这段时间做短信平台接口,总结了几个,也不是很全. ...

  3. html转换编码格式,html编码转换 html编码设置utf gbk编码转换图文教程

    html编码转换 html编码设置utf gbk编码转换图文教程篇 常用HTML编码之urf-8编码转换为gb2312编码或者gb2312转换为utf-8编码快速转换设置,这里DIVCSS5介绍使用D ...

  4. axios请求GBK页面中文乱码解决方法

    axios请求GBK页面中文乱码解决方法 参考文章: (1)axios请求GBK页面中文乱码解决方法 (2)https://www.cnblogs.com/bjhl/articles/10514038 ...

  5. 文档转换乱码异常解决:unoconv openoffice libreoffice

    文档转换乱码异常解决:unoconv openoffice libreoffice Windows上拷贝相应字体 将Windows下的Fonts,如:C:\Windows\Fonts,压缩成Fonts ...

  6. bug:生产问题,Golang解决csv文件用excel打开中文乱码问题及常见编码和BOM头关系

    bug:Golang解决csv文件用excel打开中文乱码问题 1 场景及分析 场景:今天在生成csv文件之后,测试发现用office和wps打开乱码 分析:经过测试之后发现使用记事本打开不乱码,同时 ...

  7. 字符编码 编码转换 乱码

    GB UTF-8 UNICODE 汉字编码表:http://blog.chinaunix.net/uid-25544300-id-3281847.html 1.在使用libjson的过程中遇到的编码问 ...

  8. 成功解决Eclipse打开py等文件出现乱码

    成功解决Eclipse打开py等文件出现乱码 目录 解决问题 解决思路 解决方法 解决问题 Eclipse打开py等文件出现中文乱码 解决思路 默认读取文件是以gbk的方式,需要在属性中进行转换一下即 ...

  9. 解决MATLAB2018b打开m文件后注释乱码的问题

    解决MATLAB2018b打开m文件后注释乱码的问题 MATLAB高版本(2017a以上)存在的两种编码格式 编码格式修改(GBK改为UTF-8) MATLAB高版本(2017a以上)存在的两种编码格 ...

最新文章

  1. Centos6.5升级系统自带gcc4.4.7到gcc4.8.0
  2. Eclipse常用设置
  3. 求两个有序数组的中位数-算法导论
  4. vim在退出时,处理隐藏缓冲区的方式
  5. 评价一个人,就是要看他把时间都花在哪了
  6. WordPress美化_节日灯笼插件
  7. Tinker + Bugly + Jenkins 爬坑之路
  8. 绘制神经网络工具汇总(重要)
  9. [ 转载 ]学习笔记-深入剖析Java中的装箱和拆箱
  10. Windows下U盘无法格式化原因及解决办法:Windows无法完成格式化
  11. 鸿蒙os beta3.0怎么升级,鸿蒙系统 2.0 Beta3.0版本更新详解
  12. DTOJ 2746. 皇后游戏(game)
  13. 自然语言处理hanlp------8AC自动机
  14. vue 前端导出PDF文件学起来
  15. 官场直升机 鸿蒙笔著,担当:老衲笔尖无墨水,要从空处想鸿蒙
  16. L1-040. 最佳情侣身高差(有坑点)
  17. arduino编码器计数_ARDUINO旋转编码器
  18. 苹果放新卡显示无服务器,苹果6插卡无服务怎么办
  19. 【钉钉】钉钉疫情下扛起两亿上班族和全国中小学生!
  20. David P.Williams论文系列 合成孔径声纳图像快速目标检测:一种新算法及大规模性能分析

热门文章

  1. VS_error MSB4044未给任务XX的参数XX赋值
  2. python 读取pkl_python 解压pkl文件的方法
  3. 三极管工作原理(转载)
  4. 商业模式新生代读书笔记
  5. 图书管理demo(课程小作业,较简单)
  6. RPC failed; curl 56 OpenSSL SSL_read: Connection was reset, errno 10054
  7. 巨蟹座最彰显个性的纹身 白羊座男生玩弄感情的原因
  8. 帮别人修电脑时如何装逼?
  9. 做视频剪辑必须学会的几个剪辑软件,你知道哪些?
  10. 几年前我们都喜欢用的日本手机, 为什么如今中国人就是不买账呢?