UTF8Encoding Oluşturucular
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 true
olarak 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ı true
etkinleş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 false
sıfır uzunluklu bir bayt dizisi döndürür. Ancak ayarı yöntemin encoderShouldEmitUTF8Identifier
true
GetBytes 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 false
sıfır uzunluklu bir bayt dizisi döndürür. Ancak ayarı yöntemin encoderShouldEmitUTF8Identifier
true
GetBytes 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 throwOnInvalidBytes
true
, 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ı true
etkinleştirmeniz gerekir.