Aracılığıyla paylaş


UTF8Encoding Oluşturucular

Tanım

UTF8Encoding sınıfının yeni bir örneğini başlatır.

Aşırı Yüklemeler

UTF8Encoding()

UTF8Encoding sınıfının yeni bir örneğini başlatır.

UTF8Encoding(Boolean)

UTF8Encoding sınıfının yeni bir örneğini başlatır. Parametresi, Unicode bayt sırası işaretinin sağlanıp sağlanmayacağını belirtir.

UTF8Encoding(Boolean, Boolean)

UTF8Encoding sınıfının yeni bir örneğini başlatır. Parametreler, Unicode bayt sırası işaretinin sağlanıp sağlanmayacağını ve geçersiz bir kodlama algılandığında özel durum oluşturup oluşturmayacağını belirtir.

UTF8Encoding()

Kaynak:
UTF8Encoding.cs
Kaynak:
UTF8Encoding.cs
Kaynak:
UTF8Encoding.cs

UTF8Encoding sınıfının yeni bir örneğini başlatır.

public:
 UTF8Encoding();
public UTF8Encoding ();
Public Sub New ()

Örnekler

Aşağıdaki örnek yeni UTF8Encoding bir örnek oluşturur ve adını görüntüler.

using namespace System;
using namespace System::Text;
int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   String^ encodingName = utf8->EncodingName;
   Console::WriteLine( "Encoding name: {0}", encodingName );
}
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

Açıklamalar

Bu oluşturucu, Unicode bayt sırası işareti sağlamayan bir örnek oluşturur ve geçersiz bir kodlama algılandığında özel durum oluşturmaz.

Dikkat

Güvenlik nedenleriyle, parametresi olan throwOnInvalidBytes bir oluşturucuyu çağırarak ve değerini trueolarak ayarlayarak hata algılamayı etkinleştirmenizi öneririz.

Ayrıca bkz.

Şunlara uygulanır

UTF8Encoding(Boolean)

Kaynak:
UTF8Encoding.cs
Kaynak:
UTF8Encoding.cs
Kaynak:
UTF8Encoding.cs

UTF8Encoding sınıfının yeni bir örneğini başlatır. Parametresi, Unicode bayt sırası işaretinin sağlanıp sağlanmayacağını belirtir.

public:
 UTF8Encoding(bool encoderShouldEmitUTF8Identifier);
public UTF8Encoding (bool encoderShouldEmitUTF8Identifier);
new System.Text.UTF8Encoding : bool -> System.Text.UTF8Encoding
Public Sub New (encoderShouldEmitUTF8Identifier As Boolean)

Parametreler

encoderShouldEmitUTF8Identifier
Boolean

true yönteminin GetPreamble() Bir Unicode bayt sırası işareti döndürdüğünü belirtmek için; aksi takdirde , false.

Örnekler

Aşağıdaki örnek yeni UTF8Encoding bir örnek oluşturur ve yöntemi tarafından GetPreamble bir Unicode bayt sırası işareti önekinin verilmesi gerektiğini belirtir. Yöntemi GetPreamble daha sonra Unicode bayt sırası işareti ön ekini döndürür.

using namespace System;
using namespace System::Text;
using namespace System::Collections;
void ShowArray( Array^ theArray )
{
   IEnumerator^ myEnum = theArray->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ o = safe_cast<Object^>(myEnum->Current);
      Console::Write( "[{0}]", o );
   }

   Console::WriteLine();
}

int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   UTF8Encoding^ utf8EmitBOM = gcnew UTF8Encoding( true );
   Console::WriteLine( "utf8 preamble:" );
   ShowArray( utf8->GetPreamble() );
   Console::WriteLine( "utf8EmitBOM:" );
   ShowArray( utf8EmitBOM->GetPreamble() );
}
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

Açıklamalar

Bu oluşturucu, geçersiz bir kodlama algılandığında özel durum oluşturmayan bir örnek oluşturur.

Dikkat

Güvenlik nedenleriyle, parametre içeren throwOnInvalidBytes bir oluşturucuyu çağırarak ve değerini olarak ayarlayarak hata algılamayı trueetkinleştirmeniz gerekir.

encoderShouldEmitUTF8Identifier parametresi yönteminin GetPreamble işlemini denetler. ise true, yöntemi UTF-8 biçiminde Unicode bayt sırası işaretini (BOM) içeren bir bayt dizisi döndürür. ise falsesıfır uzunluklu bir bayt dizisi döndürür. Ancak ayarı yöntemin encoderShouldEmitUTF8IdentifiertrueGetBytes bayt dizisinin başına ürün reçetesine ön ek eklemesine neden olmaz ve yöntemin GetByteCount bayt sayısına ürün reçetesindeki bayt sayısını eklemesine neden olmaz.

Ayrıca bkz.

Şunlara uygulanır

UTF8Encoding(Boolean, Boolean)

Kaynak:
UTF8Encoding.cs
Kaynak:
UTF8Encoding.cs
Kaynak:
UTF8Encoding.cs

UTF8Encoding sınıfının yeni bir örneğini başlatır. Parametreler, Unicode bayt sırası işaretinin sağlanıp sağlanmayacağını ve geçersiz bir kodlama algılandığında özel durum oluşturup oluşturmayacağını belirtir.

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)

Parametreler

encoderShouldEmitUTF8Identifier
Boolean

true yönteminin GetPreamble() Unicode bayt sırası işareti döndürmesi gerektiğini belirtmek için; aksi takdirde , false.

throwOnInvalidBytes
Boolean

true geçersiz bir kodlama algılandığında bir özel durum oluşturur; aksi takdirde , false.

Örnekler

Aşağıdaki örnek, yönteminin GetPreamble Unicode bayt sırası işareti öneki yaymaması gerektiğini ve geçersiz bir kodlama algılandığında bir özel durum oluşturulacağını belirterek yeni UTF8Encoding bir örnek oluşturur. Bu oluşturucunun davranışı, geçersiz bir kodlama algılandığında özel durum oluşturmayan varsayılan UTF8Encoding() oluşturucuyla karşılaştırılır. İki UTF8Encoding örnek, bir satırda geçersiz karakter dizisi olan iki yüksek vekil (U+D801 ve U+D802) içeren bir karakter dizisini kodlar; yüksek vekilin ardından her zaman düşük bir vekil gelmelidir.

using namespace System;
using namespace System::Text;

void ShowArray(Array^ theArray)
{
   for each (Byte b in theArray) {
      Console::Write( "{0:X2} ", b);
   }
   Console::WriteLine();
}

int main()
{
   UTF8Encoding^ utf8 = gcnew UTF8Encoding;
   UTF8Encoding^ utf8ThrowException = gcnew UTF8Encoding(false,true);
   
   // This array contains two high surrogates in a row (\uD801, \uD802).
   array<Char>^chars = {'a','b','c',L'\xD801',L'\xD802','d'};
   
   // The following method call will not throw an exception.
   array<Byte>^bytes = utf8->GetBytes( chars );
   ShowArray( bytes );
   Console::WriteLine();
   
   try {
      
      // The following method call will throw an exception.
      bytes = utf8ThrowException->GetBytes( chars );
   }
   catch (EncoderFallbackException^ e ) {
            Console::WriteLine("{0} exception\nMessage:\n{1}",
                               e->GetType()->Name, e->Message);
   }

}
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.

Açıklamalar

encoderShouldEmitUTF8Identifier parametresi yönteminin GetPreamble işlemini denetler. ise true, yöntemi UTF-8 biçiminde Unicode bayt sırası işaretini (BOM) içeren bir bayt dizisi döndürür. ise falsesıfır uzunluklu bir bayt dizisi döndürür. Ancak ayarı yöntemin encoderShouldEmitUTF8IdentifiertrueGetBytes bayt dizisinin başına ürün reçetesine ön ek eklemesine neden olmaz ve yöntemin GetByteCount bayt sayısına ürün reçetesindeki bayt sayısını eklemesine neden olmaz.

ise throwOnInvalidBytestrue, geçersiz bir bayt dizisi algılayan bir yöntem bir System.ArgumentException özel durum oluşturur. Aksi takdirde, yöntemi bir özel durum oluşturmaz ve geçersiz dizi yoksayılır.

Dikkat

Güvenlik nedenleriyle, parametresini içeren throwOnInvalidBytes bir oluşturucuyu çağırarak ve bu parametreyi olarak ayarlayarak hata algılamayı trueetkinleştirmeniz gerekir.

Ayrıca bkz.

Şunlara uygulanır