Austausch zwischen Char-Array und Byte-Array in Java

        Bei der Implementierung der Verschlüsselung und Entschlüsselung verwenden einige Methoden Byte [] und einige Methoden char [], was mühsam umzuschalten ist. Daher werden zwei Konvertierungsfunktionen bereitgestellt. Ich habe im Internet nachgesehen und bin auf Probleme bei der Implementierung gestoßen. Daher habe ich die Zeichenfolge direkt als Zwischenübergang verwendet.

char[] zu byte[]:

   public static byte[] toBytes(char[] chars) {
        String s = new String(chars);
        return s.getBytes(StandardCharsets.UTF_8);
    }

 Byte[] zu char[]:

    public static char[] toChars(byte[] bytes) {
        String s = new String(bytes, StandardCharsets.UTF_8);
        return s.toCharArray();
    }

Bei Verwendung der folgenden Methode werden bei der Konvertierung ins Chinesische am Ende vier weitere Nullen angezeigt, und der Grund ist nicht klar.

    public static byte[] getBytes(char[] chars) {
        Charset cs = Charset.forName("UTF-8");
        CharBuffer cb = CharBuffer.allocate(chars.length);
        cb.put(chars);
        cb.flip();
        ByteBuffer bb = cs.encode(cb);
        return bb.array();
    }

Guess you like

Origin blog.csdn.net/flyinmind/article/details/131330172