Java-utf8-Codierung - Zeichen, Zeichenfolgentypen

public class UTF8 {
    public static void main(String[] args){
        String s = "ヨ"; //0xFF6E
        System.out.println(s.getBytes().length);//length of the string
        System.out.println(s.charAt(0));//first character in the string
    }
}

Ausgabe:

3
ヨ

Bitte helfen Sie mir, das zu verstehen. Ich versuche zu verstehen, wie die utf8-Kodierung in Java funktioniert. Gemäß der Java-Doc-Definition von charchar: Der char-Datentyp ist ein einzelnes 16-Bit-Unicode-Zeichen.

Bedeutet das, dass char type in java nur Unicode-Zeichen unterstützen kann, die mit 2 Bytes und nicht mehr dargestellt werden können?

In dem obigen Programm ist die Anzahl der für diese Zeichenfolge zugewiesenen Bytes 3, aber in der dritten Zeile, die das erste Zeichen (2 Bytes in Java) zurückgibt, kann ein Zeichen enthalten, das 3 Bytes lang ist. hier wirklich verwirrt?

Alle guten Referenzen in Bezug auf dieses Konzept in Java / allgemein wäre sehr dankbar.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage