Aracılığıyla paylaş


ASCIIEncoding.GetBytes Yöntem

Tanım

Bir karakter kümesini bayt dizisine kodlar.

Aşırı Yüklemeler

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

Belirtilen karakter aralığını belirtilen bayt aralığına kodlar.

GetBytes(Char*, Int32, Byte*, Int32)

Belirtilen karakter işaretçisinde başlayan bir karakter kümesini, belirtilen bayt işaretçisinde başlayan bir bayt dizisine kodlar.

GetBytes(Char[], Int32, Int32, Byte[], Int32)

Belirtilen karakter dizisinden bir dizi karakteri belirtilen bayt dizisine kodlar.

GetBytes(String, Int32, Int32, Byte[], Int32)

Belirtilen String belirtilen bayt dizisine bir karakter kümesi kodlar.

GetBytes(ReadOnlySpan<Char>, Span<Byte>)

Kaynak:
ASCIIEncoding.cs
Kaynak:
ASCIIEncoding.cs
Kaynak:
ASCIIEncoding.cs

Belirtilen karakter aralığını belirtilen bayt aralığına kodlar.

public:
 override int GetBytes(ReadOnlySpan<char> chars, Span<System::Byte> bytes);
public override int GetBytes (ReadOnlySpan<char> chars, Span<byte> bytes);
override this.GetBytes : ReadOnlySpan<char> * Span<byte> -> int
Public Overrides Function GetBytes (chars As ReadOnlySpan(Of Char), bytes As Span(Of Byte)) As Integer

Parametreler

chars
ReadOnlySpan<Char>

Kodlanacak karakter aralığı.

bytes
Span<Byte>

Elde edilen bayt kümesini içeren yayılma alanı.

Döndürülenler

bytesiçine yazılan gerçek bayt sayısı.

Açıklamalar

Elde edilen baytları depolamak için GetBytes gereken tam boyutu hesaplamak için GetByteCountkullanın. En büyük boyutu hesaplamak için GetMaxByteCountkullanın. GetByteCount yöntemi genellikle daha az bellek ayırmaya izin verirken, GetMaxByteCount yöntemi genellikle daha hızlı yürütülür.

Akıştan okunan veriler gibi dönüştürülecek veriler yalnızca sıralı bloklarda kullanılabilir. Bu durumda veya veri miktarı daha küçük bloklara bölünmesi gereken kadar büyükse, sırasıyla GetDecoder yöntemi veya GetEncoder yöntemi tarafından sağlanan Decoder veya Encoder kullanın.

ASCIIEncoding hata algılama sağlamaz. U+007F'den büyük herhangi bir Unicode karakteri ASCII soru işareti ("?") olarak kodlanır.

Dikkat

Güvenlik nedeniyle UTF8Encoding, UnicodeEncodingveya UTF32Encoding kullanmanız ve hata algılamayı etkinleştirmeniz gerekir.

Şunlara uygulanır

GetBytes(Char*, Int32, Byte*, Int32)

Kaynak:
ASCIIEncoding.cs
Kaynak:
ASCIIEncoding.cs
Kaynak:
ASCIIEncoding.cs

Önemli

Bu API, CLS uyumlu değildir.

CLS uyumlu alternatif
System.Text.ASCIIEncoding.GetBytes(Char[], Int32, Int32, Byte[], Int32)

Belirtilen karakter işaretçisinde başlayan bir karakter kümesini, belirtilen bayt işaretçisinde başlayan bir bayt dizisine kodlar.

public:
 override int GetBytes(char* chars, int charCount, System::Byte* bytes, int byteCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
public override int GetBytes (char* chars, int charCount, byte* bytes, int byteCount);
[System.CLSCompliant(false)]
public override int GetBytes (char* chars, int charCount, byte* bytes, int byteCount);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetBytes (char* chars, int charCount, byte* bytes, int byteCount);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetBytes (char* chars, int charCount, byte* bytes, int byteCount);
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
override this.GetBytes : nativeptr<char> * int * nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
override this.GetBytes : nativeptr<char> * int * nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetBytes : nativeptr<char> * int * nativeptr<byte> * int -> int
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetBytes : nativeptr<char> * int * nativeptr<byte> * int -> int

Parametreler

chars
Char*

Kodlanacak ilk karakterin işaretçisi.

charCount
Int32

Kodlanacak karakter sayısı.

bytes
Byte*

Elde edilen bayt dizisini yazmaya başlama konumuna yönelik bir işaretçi.

byteCount
Int32

Yazacak bayt sayısı üst sınırı.

Döndürülenler

bytestarafından belirtilen konumda yazılan gerçek bayt sayısı.

Öznitelikler

Özel durumlar

chars null.

-veya-

bytes null.

charCount veya byteCount sıfırdan küçüktür.

byteCount, sonuçta elde edilen bayt sayısından küçüktür.

Geri dönüş oluştu (daha fazla bilgi için bkz. .NETKarakter Kodlaması )

-ve-

EncoderFallback EncoderExceptionFallbackolarak ayarlanır.

Açıklamalar

Uygulama, elde edilen baytları depolamak için GetBytes gereken dizi boyutunu tam olarak hesaplamak için GetByteCountkullanır. En büyük dizi boyutunu hesaplamak için uygulama GetMaxByteCountkullanmalıdır. GetByteCount yöntemi genellikle daha az bellek ayırmaya izin verirken, GetMaxByteCount yöntemi genellikle daha hızlı yürütülür.

Akıştan okunan veriler gibi dönüştürülecek veriler yalnızca sıralı bloklarda kullanılabilir. Bu durumda veya veri miktarı daha küçük bloklara bölünmesi gereken kadar büyükse, uygulama sırasıyla GetDecoder yöntemi veya GetEncoder yöntemi tarafından sağlanan Decoder veya Encoder kullanmalıdır.

ASCIIEncoding hata algılama sağlamaz. U+007F'den büyük herhangi bir Unicode karakteri ASCII soru işaretine ("?") çevrilir.

Dikkat

Güvenlik nedeniyle uygulamanızın UTF8Encoding, UnicodeEncodingveya UTF32Encoding kullanması ve hata algılamayı etkinleştirmesi önerilir.

Ayrıca bkz.

Şunlara uygulanır

GetBytes(Char[], Int32, Int32, Byte[], Int32)

Kaynak:
ASCIIEncoding.cs
Kaynak:
ASCIIEncoding.cs
Kaynak:
ASCIIEncoding.cs

Belirtilen karakter dizisinden bir dizi karakteri belirtilen bayt dizisine kodlar.

public:
 override int GetBytes(cli::array <char> ^ chars, int charIndex, int charCount, cli::array <System::Byte> ^ bytes, int byteIndex);
public override int GetBytes (char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex);
override this.GetBytes : char[] * int * int * byte[] * int -> int
Public Overrides Function GetBytes (chars As Char(), charIndex As Integer, charCount As Integer, bytes As Byte(), byteIndex As Integer) As Integer

Parametreler

chars
Char[]

Kodlanması gereken karakter kümesini içeren karakter dizisi.

charIndex
Int32

Kodlanacak ilk karakterin dizini.

charCount
Int32

Kodlanacak karakter sayısı.

bytes
Byte[]

Elde edilen bayt dizisini içeren bayt dizisi.

byteIndex
Int32

Elde edilen bayt sırasını yazmaya başlanması gereken dizin.

Döndürülenler

bytesiçine yazılan gerçek bayt sayısı.

Özel durumlar

chars null.

-veya-

bytes null.

charIndex, charCount veya byteIndex sıfırdan küçüktür.

-veya-

charIndex ve charCountcharsiçinde geçerli bir aralığı ifade etmeyin.

-veya-

byteIndex, bytesiçinde geçerli bir dizin değil.

bytes, sonuçta elde edilen baytları barındırmak için dizinin sonuna kadar byteIndex yeterli kapasiteye sahip değil.

Geri dönüş oluştu (daha fazla bilgi için bkz. .NETKarakter Kodlaması )

-ve-

EncoderFallback EncoderExceptionFallbackolarak ayarlanır.

Örnekler

Aşağıdaki örnekte, bir dizedeki karakter aralığını kodlamak ve kodlanmış karakterleri bayt dizisindeki bir öğe aralığında depolamak için GetBytes yönteminin nasıl kullanılacağı gösterilmektedir.

using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
   array<Byte>^bytes;
   String^ chars = "ASCII Encoding Example";
   ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
   int byteCount = ascii->GetByteCount( chars->ToCharArray(), 6, 8 );
   bytes = gcnew array<Byte>(byteCount);
   int bytesEncodedCount = ascii->GetBytes( chars, 6, 8, bytes, 0 );
   Console::WriteLine( " {0} bytes used to encode string.", bytesEncodedCount );
   Console::Write( "Encoded bytes: " );
   IEnumerator^ myEnum = bytes->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Byte b = safe_cast<Byte>(myEnum->Current);
      Console::Write( "[{0}]", b );
   }

   Console::WriteLine();
}
using System;
using System.Text;

class ASCIIEncodingExample {
    public static void Main() {
        Byte[] bytes;
        String chars = "ASCII Encoding Example";
        
        ASCIIEncoding ascii = new ASCIIEncoding();
        
        int byteCount = ascii.GetByteCount(chars.ToCharArray(), 6, 8);
        bytes = new Byte[byteCount];
        int bytesEncodedCount = ascii.GetBytes(chars, 6, 8, bytes, 0);
        
        Console.WriteLine(
            "{0} bytes used to encode string.", bytesEncodedCount
        );

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

Class ASCIIEncodingExample
   
    Public Shared Sub Main()
        Dim bytes() As Byte
        Dim chars As String = "ASCII Encoding Example"

        Dim ascii As New ASCIIEncoding()

        Dim byteCount As Integer = ascii.GetByteCount(chars.ToCharArray(), 6, 8)
        bytes = New Byte(byteCount - 1) {}
        Dim bytesEncodedCount As Integer = ascii.GetBytes(chars, 6, 8, bytes, 0)

        Console.WriteLine("{0} bytes used to encode string.", 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

Açıklamalar

Uygulama, elde edilen baytları depolamak için GetBytes gereken dizi boyutunu tam olarak hesaplamak için GetByteCountkullanır. En büyük dizi boyutunu hesaplamak için uygulama GetMaxByteCountkullanmalıdır. GetByteCount yöntemi genellikle daha az bellek ayırmaya izin verirken, GetMaxByteCount yöntemi genellikle daha hızlı yürütülür.

Akıştan okunan veriler gibi dönüştürülecek veriler yalnızca sıralı bloklarda kullanılabilir. Bu durumda veya veri miktarı daha küçük bloklara bölünmesi gereken kadar büyükse, uygulama sırasıyla GetDecoder yöntemi veya GetEncoder yöntemi tarafından sağlanan Decoder veya Encoder kullanmalıdır.

ASCIIEncoding hata algılama sağlamaz. U+007F'den büyük herhangi bir Unicode karakteri ASCII soru işareti ("?") olarak kodlanır.

Dikkat

Güvenlik nedeniyle uygulamanızın UTF8Encoding, UnicodeEncodingveya UTF32Encoding kullanması ve hata algılamayı etkinleştirmesi önerilir.

Ayrıca bkz.

Şunlara uygulanır

GetBytes(String, Int32, Int32, Byte[], Int32)

Kaynak:
ASCIIEncoding.cs
Kaynak:
ASCIIEncoding.cs
Kaynak:
ASCIIEncoding.cs

Belirtilen String belirtilen bayt dizisine bir karakter kümesi kodlar.

public:
 override int GetBytes(System::String ^ chars, int charIndex, int charCount, cli::array <System::Byte> ^ bytes, int byteIndex);
public override int GetBytes (string chars, int charIndex, int charCount, byte[] bytes, int byteIndex);
override this.GetBytes : string * int * int * byte[] * int -> int
Public Overrides Function GetBytes (chars As String, charIndex As Integer, charCount As Integer, bytes As Byte(), byteIndex As Integer) As Integer

Parametreler

chars
String

Kodlanması gereken karakter kümesini içeren String.

charIndex
Int32

Kodlanacak ilk karakterin dizini.

charCount
Int32

Kodlanacak karakter sayısı.

bytes
Byte[]

Elde edilen bayt dizisini içeren bayt dizisi.

byteIndex
Int32

Elde edilen bayt sırasını yazmaya başlanması gereken dizin.

Döndürülenler

bytesiçine yazılan gerçek bayt sayısı.

Özel durumlar

s null.

-veya-

bytes null.

charIndex, charCount veya byteIndex sıfırdan küçüktür.

-veya-

charIndex ve charCountcharsiçinde geçerli bir aralığı ifade etmeyin.

-veya-

byteIndex, bytesiçinde geçerli bir dizin değil.

bytes, sonuçta elde edilen baytları barındırmak için dizinin sonuna kadar byteIndex yeterli kapasiteye sahip değil.

Geri dönüş oluştu (daha fazla bilgi için bkz. .NETKarakter Kodlaması )

-ve-

EncoderFallback EncoderExceptionFallbackolarak ayarlanır.

Örnekler

Aşağıdaki örnekte, unicode karakter dizisindeki bir öğe aralığını kodlamak ve kodlanmış baytları bayt dizisindeki bir öğe aralığında depolamak için GetBytes yönteminin nasıl kullanılacağı gösterilmektedir.

using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
   array<Byte>^bytes;
   
   // Unicode characters.
   
   // Pi
   // Sigma
   array<Char>^chars = {L'\u03a0',L'\u03a3',L'\u03a6',L'\u03a9'};
   ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
   int byteCount = ascii->GetByteCount( chars, 1, 2 );
   bytes = gcnew array<Byte>(byteCount);
   int bytesEncodedCount = ascii->GetBytes( chars, 1, 2, bytes, 0 );
   Console::WriteLine( " {0} bytes used to encode characters.", bytesEncodedCount );
   Console::Write( "Encoded bytes: " );
   IEnumerator^ myEnum = bytes->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Byte b = safe_cast<Byte>(myEnum->Current);
      Console::Write( "[{0}]", b );
   }

   Console::WriteLine();
}
using System;
using System.Text;

class ASCIIEncodingExample {
    public static void Main() {
        Byte[] bytes;
        // Unicode characters.
        Char[] chars = new Char[] {
            '\u0023', // #
            '\u0025', // %
            '\u03a0', // Pi
            '\u03a3'  // Sigma
        };
        
        ASCIIEncoding ascii = new ASCIIEncoding();
        
        int byteCount = ascii.GetByteCount(chars, 1, 2);
        bytes = new Byte[byteCount];
        int bytesEncodedCount = ascii.GetBytes(chars, 1, 2, bytes, 0);
        
        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 ASCIIEncodingExample
    Public Shared Sub Main()
        Dim bytes() As Byte
        ' Unicode characters.
        ' ChrW(35)  = #
        ' ChrW(37)  = %
        ' ChrW(928) = Pi
        ' ChrW(931) = Sigma
        Dim chars() As Char = {ChrW(35), ChrW(37), ChrW(928), ChrW(931)}

        Dim ascii As New ASCIIEncoding()

        Dim byteCount As Integer = ascii.GetByteCount(chars, 1, 2)
        bytes = New Byte(byteCount - 1){}
        Dim bytesEncodedCount As Integer = ascii.GetBytes(chars, 1, 2, bytes, 0)

        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

Açıklamalar

Uygulama, elde edilen baytları depolamak için GetBytes gereken dizi boyutunu tam olarak hesaplamak için GetByteCountkullanır. En büyük dizi boyutunu hesaplamak için uygulama GetMaxByteCountkullanmalıdır. GetByteCount yöntemi genellikle daha az bellek ayırmaya izin verirken, GetMaxByteCount yöntemi genellikle daha hızlı yürütülür.

Akıştan okunan veriler gibi dönüştürülecek veriler yalnızca sıralı bloklarda kullanılabilir. Bu durumda veya veri miktarı daha küçük bloklara bölünmesi gereken kadar büyükse, uygulama sırasıyla GetDecoder yöntemi veya GetEncoder yöntemi tarafından sağlanan Decoder veya Encoder kullanmalıdır.

ASCIIEncoding hata algılama sağlamaz. U+007F'den büyük herhangi bir Unicode karakteri ASCII soru işareti ("?") olarak kodlanır.

Dikkat

Güvenlik nedeniyle uygulamanızın UTF8Encoding, UnicodeEncodingveya UTF32Encoding kullanması ve hata algılamayı etkinleştirmesi önerilir.

Ayrıca bkz.

Şunlara uygulanır