UTF8Encoding.GetDecoder Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een decoder opgehaald waarmee een UTF-8 gecodeerde reeks bytes wordt geconverteerd naar een reeks Unicode-tekens.
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
Retouren
Een decoder waarmee een UTF-8 gecodeerde reeks bytes wordt geconverteerd naar een reeks Unicode-tekens.
Voorbeelden
In het volgende voorbeeld wordt de GetDecoder methode gebruikt om een UTF-8-decoder te verkrijgen. De decoder converteert een reeks bytes naar een reeks tekens.
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
Opmerkingen
De Decoder.GetChars methode converteert sequentiële blokken van bytes naar sequentiële tekens, op een manier die vergelijkbaar is met de GetChars methode van deze klasse. Een Decoder onderhoudt echter statusinformatie tussen aanroepen, zodat bytereeksen die blokken omvatten, correct kunnen decoderen. Het Decoder behoudt ook volgbytes aan het einde van gegevensblokken en gebruikt de volgbytes in de volgende decoderingsbewerking. GetDecoder Daarom en GetEncoder zijn nuttig voor netwerkoverdracht en bestandsbewerkingen, omdat deze bewerkingen vaak omgaan met blokken gegevens in plaats van een volledige gegevensstroom.
Als foutdetectie is ingeschakeld, is de throwOnInvalidCharacters parameter van de constructor ingesteld op true, wordt foutdetectie ook ingeschakeld in de Decoder geretourneerde methode. Als foutdetectie is ingeschakeld en er een ongeldige reeks wordt aangetroffen, is de status van de decoder niet gedefinieerd en moet de verwerking stoppen.