0

Base64 UTF-32 でエンコードされた文字列がありますが、デコード中に空白が含まれます。org.apache.commons.codec ライブラリを使用しています。

以下のコードをエンコードするために使用され、期待どおりに正常に動作します

public static String encodeBase64(String encodeString,String utfType){
        try {
            return new String(Base64.encodeBase64String(encodeString.getBytes(utfType)));
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }
        System.out.println(encodeBase64("This is UTF-32 encoading test","UTF-32"));

これにより、Base64でエンコードされた文字列が次のようになります

AAAAVAAAAGgAAABpAAAAcwAAACAAAABpAAAAcwAAACAAAABVAAAAVAAAAEYAAAAtAAAAMwAAADIAAAAgAAAAZQAAAG4AAABjAAAAbwAAAGEAAABkAAAAaQAAAG4AAABnAAAAIAAAAHQAAABlAAAAcwAAAHQ=

上記の文字列をデコードしたい

    public static String decodeBase64(String decodeString,String utfType){
        try {
            byte[] actualByte = java.util.Base64.getDecoder() .decode(decodeString);
             return new String(actualByte);
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
    }

        System.out.println(decodeBase64("AAAAVAAAAGgAAABpAAAAcwAAACAAAABpAAAAcwAAACAAAABVAAAAVAAAAEYAAAAtAAAAMwAAADIAAAAgAAAAZQAAAG4AAABjAAAAbwAAAGEAAABkAAAAaQAAAG4AAABnAAAAIAAAAHQAAABlAAAAcwAAAHQ=","UTF-32"));

以下のように出力されますが、正しくありません

T   h   i   s       i   s       U   T   F   -   3   2        e   n   c   o   a 
  d   i   n   g        t   e   s   t

以下の値のようにデコードして元の文字列として取得する方法 これは UTF-32 エンコーディング テストです","UTF-32

4

1 に答える 1