UTF8Encoding.GetDecoder Metode

Definisi

Mendapatkan dekoder yang mengonversi urutan byte yang dikodekan UTF-8 menjadi urutan karakter 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

Mengembalikan

Decoder yang mengonversi urutan byte yang dikodekan UTF-8 menjadi urutan karakter Unicode.

Contoh

Contoh berikut menggunakan GetDecoder metode untuk mendapatkan dekoder UTF-8. Decoder mengonversi urutan byte menjadi urutan karakter.

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

Keterangan

Metode ini Decoder.GetChars mengonversi blok byte berurutan menjadi blok karakter berurutan, dengan cara yang mirip GetChars dengan metode kelas ini. Namun, Decoder mempertahankan informasi status antar panggilan sehingga dapat mendekode urutan byte dengan benar yang mencakup blok. juga Decoder mempertahankan byte berikutnya di akhir blok data dan menggunakan byte berikutnya dalam operasi decoding berikutnya. Oleh karena itu, GetDecoder dan GetEncoder berguna untuk transmisi jaringan dan operasi file, karena operasi tersebut sering berurusan dengan blok data alih-alih aliran data lengkap.

Jika deteksi kesalahan diaktifkan, yaitu, throwOnInvalidCharacters parameter konstruktor diatur ke true, deteksi kesalahan juga diaktifkan dalam Decoder yang dikembalikan oleh metode ini. Jika deteksi kesalahan diaktifkan dan urutan yang tidak valid ditemui, status dekoder tidak terdefinisi dan pemrosesan harus berhenti.

Berlaku untuk

Lihat juga