ASCIIEncoding.GetBytes Yöntem

Tanım

Bir karakter kümesini bayt dizisine kodlar.

Aşırı Yüklemeler

Name Description
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)

Belirtilenden bir dizi karakteri belirtilen String bayt dizisine kodlar.

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

Kaynak:
ASCIIEncoding.cs
Kaynak:
ASCIIEncoding.cs
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

içine yazılan bytesgerçek bayt sayısı.

Açıklamalar

Elde edilen baytları depolamak için tarafından GetBytes gereken tam boyutu hesaplamak için kullanın GetByteCount. En büyük boyutu hesaplamak için kullanın GetMaxByteCount. GetByteCount yöntemi genellikle daha az bellek ayırmaya izin verirken, GetMaxByteCount yöntem 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, Decoder sırasıyla yöntemi veya yöntemi tarafından Encoder sağlanan veya GetDecoderGetEncoder kullanın.

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

Caution

Güvenlik nedeniyle , UTF8Encodingveya UnicodeEncoding kullanmanız UTF32Encodingve hata algılamayı etkinleştirmeniz gerekir.

Şunlara uygulanır

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

Kaynak:
ASCIIEncoding.cs
Kaynak:
ASCIIEncoding.cs
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

tarafından bytesbelirtilen konumda yazılan gerçek bayt sayısı.

Öznitelikler

Özel durumlar

chars, null'e eşittir.

-veya-

bytes, null'e eşittir.

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

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

Geri dönüş oluştu (daha fazla bilgi için bkz. .NET'te Karakter Kodlama)

-ve-

EncoderFallback olarak ayarlanır EncoderExceptionFallback.

Açıklamalar

Uygulama, tarafından elde edilen baytları depolamak için gereken GetBytes dizi boyutunu tam olarak hesaplamak için kullanır GetByteCount. En büyük dizi boyutunu hesaplamak için uygulama kullanmalıdır GetMaxByteCount. GetByteCount yöntemi genellikle daha az bellek ayırmaya izin verirken, GetMaxByteCount yöntem 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 yöntemi veya yöntemi tarafından Decoder sağlanan veya öğesini kullanmalıdır.EncoderGetDecoderGetEncoder

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

Caution

Güvenlik nedeniyle, uygulamanızın , UTF8Encodingveya UnicodeEncoding kullanması UTF32Encodingve 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
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

içine yazılan bytesgerçek bayt sayısı.

Özel durumlar

chars, null'e eşittir.

-veya-

bytes, null'e eşittir.

charIndex veya charCountbyteIndex sıfırdan küçüktür.

-veya-

charIndex ve charCount içinde charsgeçerli bir aralığı ifade etmeyin.

-veya-

byteIndex içinde bytesgeçerli bir dizin değil.

bytes dizinin sonundan byteIndex elde edilen baytları barındırmak için yeterli kapasiteye sahip değil.

Geri dönüş oluştu (daha fazla bilgi için bkz. .NET'te Karakter Kodlama)

-ve-

EncoderFallback olarak ayarlanır EncoderExceptionFallback.

Örnekler

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

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, tarafından elde edilen baytları depolamak için gereken GetBytes dizi boyutunu tam olarak hesaplamak için kullanır GetByteCount. En büyük dizi boyutunu hesaplamak için uygulama kullanmalıdır GetMaxByteCount. GetByteCount yöntemi genellikle daha az bellek ayırmaya izin verirken, GetMaxByteCount yöntem 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 yöntemi veya yöntemi tarafından Decoder sağlanan veya öğesini kullanmalıdır.EncoderGetDecoderGetEncoder

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

Caution

Güvenlik nedeniyle, uygulamanızın , UTF8Encodingveya UnicodeEncoding kullanması UTF32Encodingve 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
Kaynak:
ASCIIEncoding.cs
Kaynak:
ASCIIEncoding.cs

Belirtilenden bir dizi karakteri belirtilen String bayt dizisine 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

Kodlanacak karakter kümesi.

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

içine yazılan bytesgerçek bayt sayısı.

Özel durumlar

chars veya bytes şeklindedir null.

charIndex veya charCountbyteIndex sıfırdan küçüktür.

-veya-

charIndex ve charCount içinde charsgeçerli bir aralığı ifade etmeyin.

-veya-

byteIndex içinde bytesgeçerli bir dizin değil.

bytes dizinin sonundan byteIndex elde edilen baytları barındırmak için yeterli kapasiteye sahip değil.

Geri dönüş oluştu (daha fazla bilgi için bkz. .NET'te Karakter Kodlama)

-ve-

EncoderFallback olarak ayarlanır EncoderExceptionFallback.

Ö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 yönteminin nasıl kullanılacağı GetBytes gösterilmektedir.

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, tarafından elde edilen baytları depolamak için gereken GetBytes dizi boyutunu tam olarak hesaplamak için kullanır GetByteCount. En büyük dizi boyutunu hesaplamak için uygulama kullanmalıdır GetMaxByteCount. GetByteCount yöntemi genellikle daha az bellek ayırmaya izin verirken, GetMaxByteCount yöntem 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 yöntemi veya yöntemi tarafından Decoder sağlanan veya öğesini kullanmalıdır.EncoderGetDecoderGetEncoder

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

Caution

Güvenlik nedeniyle , UTF8Encodingveya UnicodeEncoding kullanılması UTF32Encodingve hata algılamayı etkinleştirmeniz önerilir.

Ayrıca bkz.

Şunlara uygulanır