Ohne weiteren Kontext würde ich sagen, dass die maximale Anzahl von Bytes für ein Zeichen in UTF-8 ist
Antwort: 6 Bytes
Der Autor der akzeptierten Antwort hat dies korrekt als "ursprüngliche Spezifikation" bezeichnet. Das war gültig durch RFC-2279 1 . Wie J. Cocoe in den Kommentaren unten hervorhob, änderte sich dies 2003 mit RFC-3629 2 , das UTF-8 auf die Codierung für 21 Bit beschränkt, die mit dem Codierungsschema unter Verwendung von vier Bytes verarbeitet werden kann.
Antwort, wenn alle Unicode abgedeckt: 4 Bytes
In Java <= v7 wird jedoch von einem Maximum von 3 Byte für die Darstellung von Unicode mit UTF-8 gesprochen. Dies liegt daran, dass die ursprüngliche Unicode-Spezifikation nur die grundlegende mehrsprachige Ebene ( BMP ) definiert hat, dh es handelt sich um eine ältere Version von Unicode oder eine Teilmenge des modernen Unicodes. Damit
Antwort, wenn nur der ursprüngliche Unicode dargestellt wird, das BMP: 3 Bytes
Das OP spricht jedoch davon, in die andere Richtung zu gehen. Nicht von Zeichen zu UTF-8-Bytes, sondern von UTF-8-Bytes zu einer "Zeichenfolge" der Bytedarstellung. Vielleicht hat der Autor der akzeptierten Antwort dies aus dem Kontext der Frage erhalten, aber dies ist nicht unbedingt offensichtlich, was den gelegentlichen Leser dieser Frage verwirren kann.
Beim Übergang von UTF-8 zur nativen Codierung müssen wir uns ansehen, wie der "String" implementiert ist. Einige Sprachen, wie Python> = 3, repräsentieren jedes Zeichen mit ganzzahligen Codepunkten, was 4 Bytes pro Zeichen = 32 Bit ermöglicht, um die 21, die wir für Unicode benötigen, mit etwas Verschwendung abzudecken. Warum nicht genau 21 Bit? Weil die Dinge schneller sind, wenn sie byteorientiert sind. Einige Sprachen wie Python <= 2 und Java stellen Zeichen mit einer UTF-16-Codierung dar. Dies bedeutet, dass sie Ersatzpaare verwenden müssen, um erweiterten Unicode (nicht BMP) darzustellen. In beiden Fällen sind das immer noch maximal 4 Bytes.
Antwort, wenn UTF-8 -> native Codierung verwendet wird: 4 Bytes
Letztendlich ist 4 die häufigste richtige Antwort, also haben wir es richtig verstanden. Der Kilometerstand kann jedoch variieren.