UTF8Encoding.GetDecoder Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.