iso8859-1,GBK,UTF-8之间转码问题
大概是这样想的,在原有的基础上新加一个中间前置转发。但是数据转码后数据不对。
在对一串数据做一系列操作后,大概如下
(1)--------------- String pwdString = new String(byteUtf8,"ISO8859-1");
(2)---------------
byte[] gg = pwdString.getBytes("GBK");
(3)---------------
String ggg = new String(gg,"GBK");
(4)---------------
String s4 = new String(ggg.getBytes("GBK"),"ISO8859-1");
数据:7D2513D2BF374287
结果:7D25133F3F37423F
ISO8859-1转GBK后好像数据丢失了。但是如果2,3这两步之间交互用的UTF-8就不会出现问题,再转回来初始数据也一样,如下
(1)--------------- String pwdString = new String(byteUtf8,"ISO8859-1");
(2)---------------
byte[] gg = pwdString.getBytes("UTF-8");
(3)---------------
String ggg = new String(gg,"UTF-8");
(4)---------------
String s4 = new String(ggg.getBytes("ISO8859-1"),"ISO8859-1");
数据:7D2513D2BF374287
结果:7D2513D2BF374287
回答:
看起来前几位是对的,然后后面几位有问题,估计是某些编码要求后面补0,保证最后的总长度是8的倍数,可以往这个方向试试,不用写代码,直接用一些在线的转码工具试几下就有了。
以上是 iso8859-1,GBK,UTF-8之间转码问题 的全部内容, 来源链接: utcz.com/p/171712.html