鍍金池/ 問答/Java/ iso8859-1,GBK,UTF-8之間轉碼問題

iso8859-1,GBK,UTF-8之間轉碼問題

圖片描述大概是這樣想的,在原有的基礎上新加一個中間前置轉發(fā)。但是數(shù)據轉碼后數(shù)據不對。
在對一串數(shù)據做一系列操作后,大概如下

        (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");
        
        數(shù)據:7D2513D2BF374287
        
        結果:7D25133F3F37423F
       

ISO8859-1轉GBK后好像數(shù)據丟失了。但是如果2,3這兩步之間交互用的UTF-8就不會出現(xiàn)問題,再轉回來初始數(shù)據也一樣,如下

        (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");
        
        數(shù)據:7D2513D2BF374287
        
        結果:7D2513D2BF374287
回答
編輯回答
乞許

看起來前幾位是對的,然后后面幾位有問題,估計是某些編碼要求后面補0,保證最后的總長度是8的倍數(shù),可以往這個方向試試,不用寫代碼,直接用一些在線的轉碼工具試幾下就有了。

2018年9月8日 08:03