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

回到顶部