UTF8Encoding.GetDecoder Methode

Definitie

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.

Van toepassing op

Zie ook