UTF8Encoding Konstruktor
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menginisialisasi instans baru dari kelas UTF8Encoding.
Overload
| Nama | Deskripsi |
|---|---|
| UTF8Encoding() |
Menginisialisasi instans baru dari kelas UTF8Encoding. |
| UTF8Encoding(Boolean) |
Menginisialisasi instans baru dari kelas UTF8Encoding. Parameter menentukan apakah akan memberikan tanda urutan byte Unicode. |
| UTF8Encoding(Boolean, Boolean) |
Menginisialisasi instans baru dari kelas UTF8Encoding. Parameter menentukan apakah akan memberikan tanda urutan byte Unicode dan apakah akan melemparkan pengecualian saat pengodean yang tidak valid terdeteksi. |
UTF8Encoding()
Menginisialisasi instans baru dari kelas UTF8Encoding.
public:
UTF8Encoding();
public UTF8Encoding();
Public Sub New ()
Contoh
Contoh berikut membuat instans baru UTF8Encoding dan menampilkan namanya.
using System;
using System.Text;
class UTF8EncodingExample {
public static void Main() {
UTF8Encoding utf8 = new UTF8Encoding();
String encodingName = utf8.EncodingName;
Console.WriteLine("Encoding name: " + encodingName);
}
}
Imports System.Text
Class UTF8EncodingExample
Public Shared Sub Main()
Dim utf8 As New UTF8Encoding()
Dim encodingName As String = utf8.EncodingName
Console.WriteLine("Encoding name: " & encodingName)
End Sub
End Class
Keterangan
Konstruktor ini membuat instans yang tidak memberikan tanda urutan byte Unicode dan tidak melemparkan pengecualian ketika pengodean yang tidak valid terdeteksi.
Caution
Untuk alasan keamanan, kami sarankan Anda mengaktifkan deteksi kesalahan dengan memanggil konstruktor dengan throwOnInvalidBytes parameter dan mengatur nilainya ke true.
Lihat juga
Berlaku untuk
UTF8Encoding(Boolean)
Menginisialisasi instans baru dari kelas UTF8Encoding. Parameter menentukan apakah akan memberikan tanda urutan byte Unicode.
public:
UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
public UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
new System.Text.UTF8Encoding : bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean)
Parameter
- encoderShouldEmitUTF8Identifier
- Boolean
true untuk menentukan bahwa GetPreamble() metode mengembalikan tanda urutan byte Unicode; jika tidak, false.
Contoh
Contoh berikut membuat instans baru UTF8Encoding dan menentukan bahwa awalan tanda urutan byte Unicode harus dipancarkan oleh GetPreamble metode . Metode GetPreamble kemudian mengembalikan awalan tanda urutan byte Unicode.
using System;
using System.Text;
class UTF8EncodingExample {
public static void Main() {
UTF8Encoding utf8 = new UTF8Encoding();
UTF8Encoding utf8EmitBOM = new UTF8Encoding(true);
Console.WriteLine("utf8 preamble:");
ShowArray(utf8.GetPreamble());
Console.WriteLine("utf8EmitBOM:");
ShowArray(utf8EmitBOM.GetPreamble());
}
public static void ShowArray(Array theArray) {
foreach (Object o in theArray) {
Console.Write("[{0}]", o);
}
Console.WriteLine();
}
}
Imports System.Text
Class UTF8EncodingExample
Public Shared Sub Main()
Dim utf8 As New UTF8Encoding()
Dim utf8EmitBOM As New UTF8Encoding(True)
Console.WriteLine("utf8 preamble:")
ShowArray(utf8.GetPreamble())
Console.WriteLine("utf8EmitBOM:")
ShowArray(utf8EmitBOM.GetPreamble())
End Sub
Public Shared Sub ShowArray(theArray As Array)
Dim o As Object
For Each o In theArray
Console.Write("[{0}]", o)
Next o
Console.WriteLine()
End Sub
End Class
Keterangan
Konstruktor ini membuat instans yang tidak memberikan pengecualian ketika pengodean yang tidak valid terdeteksi.
Caution
Untuk alasan keamanan, Anda harus mengaktifkan deteksi kesalahan dengan memanggil konstruktor yang menyertakan throwOnInvalidBytes parameter dan mengatur nilainya ke true.
Parameter encoderShouldEmitUTF8Identifier mengontrol pengoperasian GetPreamble metode . Jika true, metode mengembalikan array byte yang berisi tanda urutan byte Unicode (BOM) dalam format UTF-8. Jika false, ia mengembalikan array byte panjang nol. Namun, pengaturan encoderShouldEmitUTF8Identifier tidak true menyebabkan GetBytes metode untuk mengawali BOM di awal array byte, juga tidak menyebabkan GetByteCount metode menyertakan jumlah byte dalam BOM dalam jumlah byte.
Lihat juga
Berlaku untuk
UTF8Encoding(Boolean, Boolean)
Menginisialisasi instans baru dari kelas UTF8Encoding. Parameter menentukan apakah akan memberikan tanda urutan byte Unicode dan apakah akan melemparkan pengecualian saat pengodean yang tidak valid terdeteksi.
public:
UTF8Encoding(bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes);
public UTF8Encoding(bool encoderShouldEmitUTF8Identifier, bool throwOnInvalidBytes);
new System.Text.UTF8Encoding : bool * bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean, throwOnInvalidBytes As Boolean)
Parameter
- encoderShouldEmitUTF8Identifier
- Boolean
true untuk menentukan bahwa GetPreamble() metode harus mengembalikan tanda urutan byte Unicode; jika tidak, false.
- throwOnInvalidBytes
- Boolean
true untuk melempar pengecualian ketika pengodean yang tidak valid terdeteksi; jika tidak, false.
Contoh
Contoh berikut membuat instans baru UTF8Encoding , menentukan bahwa GetPreamble metode tidak boleh memancarkan awalan tanda urutan byte Unicode, dan pengecualian harus dilemparkan ketika pengodean yang tidak valid terdeteksi. Perilaku konstruktor ini dibandingkan dengan konstruktor default UTF8Encoding() , yang tidak melemparkan pengecualian ketika pengodean yang tidak valid terdeteksi. Dua UTF8Encoding instans mengodekan array karakter yang berisi dua pengganti tinggi (U+D801 dan U+D802) berturut-turut, yang merupakan urutan karakter yang tidak valid; pengganti tinggi harus selalu diikuti oleh pengganti rendah.
using System;
using System.Text;
class Example
{
public static void Main()
{
UTF8Encoding utf8 = new UTF8Encoding();
UTF8Encoding utf8ThrowException = new UTF8Encoding(false, true);
// Create an array with two high surrogates in a row (\uD801, \uD802).
Char[] chars = new Char[] {'a', 'b', 'c', '\uD801', '\uD802', 'd'};
// The following method call will not throw an exception.
Byte[] bytes = utf8.GetBytes(chars);
ShowArray(bytes);
Console.WriteLine();
try {
// The following method call will throw an exception.
bytes = utf8ThrowException.GetBytes(chars);
ShowArray(bytes);
}
catch (EncoderFallbackException e) {
Console.WriteLine("{0} exception\nMessage:\n{1}",
e.GetType().Name, e.Message);
}
}
public static void ShowArray(Array theArray) {
foreach (Object o in theArray)
Console.Write("{0:X2} ", o);
Console.WriteLine();
}
}
// The example displays the following output:
// 61 62 63 EF BF BD EF BF BD 64
//
// EncoderFallbackException exception
// Message:
// Unable to translate Unicode character \uD801 at index 3 to specified code page.
Imports System.Text
Class Example
Public Shared Sub Main()
Dim utf8 As New UTF8Encoding()
Dim utf8ThrowException As New UTF8Encoding(False, True)
' Create an array with two high surrogates in a row (\uD801, \uD802).
Dim chars() As Char = {"a"c, "b"c, "c"c, ChrW(&hD801), ChrW(&hD802), "d"c}
' The following method call will not throw an exception.
Dim bytes As Byte() = utf8.GetBytes(chars)
ShowArray(bytes)
Console.WriteLine()
Try
' The following method call will throw an exception.
bytes = utf8ThrowException.GetBytes(chars)
ShowArray(bytes)
Catch e As EncoderFallbackException
Console.WriteLine("{0} exception{2}Message:{2}{1}",
e.GetType().Name, e.Message, vbCrLf)
End Try
End Sub
Public Shared Sub ShowArray(theArray As Array)
For Each o In theArray
Console.Write("{0:X2} ", o)
Next
Console.WriteLine()
End Sub
End Class
' The example displays the following output:
' 61 62 63 EF BF BD EF BF BD 64
'
' EncoderFallbackException exception
' Message:
' Unable to translate Unicode character \uD801 at index 3 to specified code page.
Keterangan
Parameter encoderShouldEmitUTF8Identifier mengontrol pengoperasian GetPreamble metode . Jika true, metode mengembalikan array byte yang berisi tanda urutan byte Unicode (BOM) dalam format UTF-8. Jika false, ia mengembalikan array byte panjang nol. Namun, pengaturan encoderShouldEmitUTF8Identifier tidak true menyebabkan GetBytes metode untuk mengawali BOM di awal array byte, juga tidak menyebabkan GetByteCount metode menyertakan jumlah byte dalam BOM dalam jumlah byte.
Jika throwOnInvalidBytes adalah true, metode yang mendeteksi urutan byte yang tidak valid melempar System.ArgumentException pengecualian. Jika tidak, metode tidak melemparkan pengecualian, dan urutan yang tidak valid diabaikan.
Caution
Untuk alasan keamanan, Anda harus mengaktifkan deteksi kesalahan dengan memanggil konstruktor yang menyertakan throwOnInvalidBytes parameter dan mengatur parameter tersebut ke true.