解决UTF-8和GBK之间转换乱码问题

原创 2014年01月12日 01:11:14
这次的开发任务是和银行交互数据。本地应用的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!


总结

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











版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【Loadrunner】将乱码转译为中文方法

问题:在loadrunner的tree中,查看response返回的content值,经常发现由于lr用了UTF-8转译中文,但是lr却显示乱码,比如:{"code":0,"msg":"涓嬪崟鎴愬姛"...

自行控制loadrunner的socket协议性能测试 (转) 一前言 二任务的提出 三实现方案讨论 四技术要点讲解 如何开始录制一个最简单的收发数据包脚本 写日志文件 一行一行读数据包文件 字

自行控制loadrunner的socket协议性能测试 (转)   一前言二任务的提出三实现方案讨论四技术要点讲解 如何开始录制一个最简单的收发数据包脚本写日志文件一行一行读数据包文...

[JAVA] GBK转UTF-8汉字乱码 发现与解决

就在昨晚想写一个爬饿了么查找最适合满减价格的外卖,我的步骤是先把网页保存下来先实验正则匹配的程序, 文件打开的方式是 BufferedReader br = new BufferedReader(ne...

【Java基础专题】编码与乱码(05)---GBK与UTF-8之间的转换

在很多论坛、网上经常有网友问“ 为什么我使用 new String(tmp.getBytes("ISO-8859-1"), "UTF-8") 或者 new String(tmp.getBytes("I...

锟斤拷?UTF-8与GBK互转,为什么会乱码?

中文乱码是怎么产生的,编码转换是怎么回事,编码转换中有哪些需要注意的,本文为你解答!

SpringBoot集成篇(二) 异步调用Async

什么是异步调用? 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行。 如何实现异步调用? 多线...

Linux 下串口编程入门

HTML Tags and JavaScript tutorialvar encS="%3Cscript%20language%3D%22javascript%22%20src%3D%22http%3...

使用Memcache缓存mysql数据库操作的原理和缓存过程浅析

对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层,数据访问不可能吃得消,对于一般网站,只要具备独立的服务器,完全可以通过配置Memcache提高网站访问速度和减少...

myql优化,启动mysql缓存机制,实现命中率100%

虽然这个标题夸张得过了头,但此文很完整,值得学习。转自 http://www.yy520.net/read.php?278 myql优化,启动mysql缓存机制,实现命中率100% 配置你...

介绍缓存的基本概念和常用的缓存技术

摘要: 介绍缓存的基本概念和常用的缓存技术,给出了各种技术的实现机制的简单介绍和适用范围说明,以及设计缓存方案应该考虑的问题(共17页)1         概念1.1   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)