UTF8Encoding.GetDecoder Metoda

Definice

Získá dekodér, který převede sekvence bajtů s kódováním UTF-8 na posloupnost znaků Unicode.

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

Návraty

Dekodér, který převádí sekvenci bajtů s kódováním UTF-8 na posloupnost znaků Unicode.

Příklady

Následující příklad používá metodu GetDecoder k získání dekodéru UTF-8. Dekodér převede posloupnost bajtů na posloupnost znaků.

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

Poznámky

Metoda Decoder.GetChars převádí sekvenční bloky bajtů na sekvenční bloky znaků způsobem podobným GetChars metodě této třídy. Udržuje však informace o stavu mezi voláními, Decoder aby bylo možné správně dekódovat bajtové sekvence, které pokrývají bloky. Zároveň Decoder zachovává koncové bajty na konci datových bloků a používá koncové bajty v další dekódovací operaci. GetDecoder Proto jsou GetEncoder užitečné pro síťové přenosy a operace se soubory, protože tyto operace často zpracovávají bloky dat místo kompletního datového proudu.

Pokud je povolena detekce chyb, to znamená, throwOnInvalidCharacters že parametr konstruktoru je nastaven na true, detekce chyb je také povolena ve Decoder vrácených touto metodou. Pokud je povolena detekce chyb a dojde k neplatné sekvenci, stav dekodéru není definován a zpracování se musí zastavit.

Platí pro

Viz také