UTF8Encoding.GetDecoder Methode

Definition

Ruft einen Decoder ab, der eine UTF-8-codierte Bytesequenz in eine Sequenz von Unicode-Zeichen konvertiert.

public:
 override System::Text::Decoder ^ GetDecoder();
public override System.Text.Decoder GetDecoder();
override this.GetDecoder : unit -> System.Text.Decoder
Public Overrides Function GetDecoder () As Decoder

Gibt zurück

Ein Decoder, der eine UTF-8-codierte Bytesequenz in eine Sequenz von Unicode-Zeichen konvertiert.

Beispiele

Im folgenden Beispiel wird die GetDecoder Methode verwendet, um einen UTF-8-Decoder abzurufen. Der Decoder wandelt eine Bytesequenz in eine Abfolge von Zeichen um.

using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        Char[] chars;
        Byte[] bytes = new Byte[] {
            99, 204, 128, 234, 130, 160
        };

        Decoder utf8Decoder = Encoding.UTF8.GetDecoder();

        int charCount = utf8Decoder.GetCharCount(bytes, 0, bytes.Length);
        chars = new Char[charCount];
        int charsDecodedCount = utf8Decoder.GetChars(bytes, 0, bytes.Length, chars, 0);

        Console.WriteLine(
            "{0} characters used to decode bytes.", charsDecodedCount
        );

        Console.Write("Decoded chars: ");
        foreach (Char c in chars) {
            Console.Write("[{0}]", c);
        }
        Console.WriteLine();
    }
}
Imports System.Text

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        Dim chars() As Char
        Dim bytes() As Byte = {99, 204, 128, 234, 130, 160}
        
        Dim utf8Decoder As Decoder = Encoding.UTF8.GetDecoder()
        
        Dim charCount As Integer = utf8Decoder.GetCharCount(bytes, 0, bytes.Length)
        chars = New Char(charCount - 1) {}
        Dim charsDecodedCount As Integer = utf8Decoder.GetChars( _
            bytes, 0, bytes.Length, chars, 0 _
        )
        
        Console.WriteLine("{0} characters used to decode bytes.", charsDecodedCount)
        
        Console.Write("Decoded chars: ")
        Dim c As Char
        For Each c In  chars
            Console.Write("[{0}]", c)
        Next c
        Console.WriteLine()
    End Sub
End Class

Hinweise

Die Decoder.GetChars Methode konvertiert sequenzielle Byteblöcke in sequenzielle Zeichenblöcke, ähnlich der GetChars Methode dieser Klasse. Eine Decoder Zustandsinformationen werden jedoch zwischen Aufrufen beibehalten, sodass Bytesequenzen, die Blöcke umfassen, ordnungsgemäß decodiert werden können. Außerdem Decoder werden nachfolgende Bytes am Ende von Datenblöcken beibehalten und die nachfolgenden Bytes im nächsten Decodierungsvorgang verwendet. GetDecoder Daher sind sie GetEncoder nützlich für Die Netzwerkübertragung und Dateivorgänge, da diese Vorgänge häufig mit Datenblöcken statt mit einem vollständigen Datenstrom umgehen.

Wenn die Fehlererkennung aktiviert ist, d. h. der throwOnInvalidCharacters Parameter des Konstruktors, truewird auch die Fehlererkennung in der Decoder von dieser Methode zurückgegebenen aktiviert. Wenn die Fehlererkennung aktiviert ist und eine ungültige Sequenz auftritt, ist der Zustand des Decoders nicht definiert und die Verarbeitung muss beendet werden.

Gilt für:

Weitere Informationen