UTF8Encoding.GetEncoder Metode

Definisi

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

public:
 override System::Text::Encoder ^ GetEncoder();
public override System.Text.Encoder GetEncoder();
override this.GetEncoder : unit -> System.Text.Encoder
Public Overrides Function GetEncoder () As Encoder

Mengembalikan

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

Contoh

Contoh berikut menggunakan GetEncoder metode untuk mendapatkan encoder untuk mengonversi urutan karakter menjadi urutan byte yang dikodekan UTF-8.

using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        Char[] chars = new Char[] {'a', 'b', 'c', '\u0300', '\ua0a0'};
        Byte[] bytes;

        Encoder utf8Encoder = Encoding.UTF8.GetEncoder();

        int byteCount = utf8Encoder.GetByteCount(chars, 2, 3, true);
        bytes = new Byte[byteCount];
        int bytesEncodedCount = utf8Encoder.GetBytes(chars, 2, 3, bytes, 0, true);

        Console.WriteLine(
            "{0} bytes used to encode characters.", bytesEncodedCount
        );

        Console.Write("Encoded bytes: ");
        foreach (Byte b in bytes) {
            Console.Write("[{0}]", b);
        }
        Console.WriteLine();
    }
}
Imports System.Text
Imports Microsoft.VisualBasic.Strings

Class UTF8EncodingExample
    
    Public Shared Sub Main()
        'Characters:
        ' ChrW(97) = a
        ' ChrW(98) = b
        ' ChrW(99) = c
        ' ChrW(768) = `
        ' ChrW(41120) = valid unicode code point, but not a character
        Dim chars() As Char = {ChrW(97), ChrW(98), ChrW(99), ChrW(768), ChrW(41120)}
        Dim bytes() As Byte
        
        Dim utf8Encoder As Encoder = Encoding.UTF8.GetEncoder()
        
        Dim byteCount As Integer = utf8Encoder.GetByteCount(chars, 2, 3, True)
        bytes = New Byte(byteCount - 1) {}
        Dim bytesEncodedCount As Integer = utf8Encoder.GetBytes( _
            chars, 2, 3, bytes, 0, True _
        )
        
        Console.WriteLine("{0} bytes used to encode characters.", bytesEncodedCount)
        
        Console.Write("Encoded bytes: ")
        Dim b As Byte
        For Each b In  bytes
            Console.Write("[{0}]", b)
        Next b
        Console.WriteLine()
    End Sub
End Class

Keterangan

Metode ini Encoder.GetBytes mengonversi blok karakter berurutan menjadi blok byte berurutan, dengan cara yang mirip GetBytes dengan metode . Namun, Encoder mempertahankan informasi status antar panggilan sehingga dapat mengodekan urutan karakter dengan benar yang mencakup blok. Juga Encoder mempertahankan karakter berikutnya di akhir blok data dan menggunakan karakter berikutnya dalam operasi pengodean berikutnya. Misalnya, blok data mungkin diakhiri dengan pengganti tinggi yang tidak cocok, dan pengganti rendah yang cocok mungkin berada di blok data 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 Encoder yang dikembalikan oleh metode ini. Jika deteksi kesalahan diaktifkan dan urutan yang tidak valid ditemui, status encoder tidak terdefinisi dan pemrosesan harus berhenti.

Berlaku untuk

Lihat juga