Bagikan melalui


ASCIIEncoding.GetBytes Metode

Definisi

Mengodekan sekumpulan karakter ke dalam urutan byte.

Overload

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

Mengodekan rentang karakter yang ditentukan ke dalam rentang byte yang ditentukan.

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

Mengodekan sekumpulan karakter yang dimulai pada penunjuk karakter yang ditentukan ke dalam urutan byte yang disimpan mulai dari penunjuk byte yang ditentukan.

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

Mengodekan sekumpulan karakter dari array karakter yang ditentukan ke dalam array byte yang ditentukan.

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

Mengodekan sekumpulan karakter dari yang ditentukan String ke dalam array byte yang ditentukan.

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

Sumber:
ASCIIEncoding.cs
Sumber:
ASCIIEncoding.cs
Sumber:
ASCIIEncoding.cs

Mengodekan rentang karakter yang ditentukan ke dalam rentang byte yang ditentukan.

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

Parameter

chars
ReadOnlySpan<Char>

Rentang karakter untuk dikodekan.

bytes
Span<Byte>

Rentang untuk berisi kumpulan byte yang dihasilkan.

Mengembalikan

Jumlah byte aktual yang ditulis ke dalam bytes.

Keterangan

Untuk menghitung ukuran tepat yang diperlukan oleh GetBytes untuk menyimpan byte yang dihasilkan, gunakan GetByteCount. Untuk menghitung ukuran maksimum, gunakan GetMaxByteCount. Metode ini GetByteCount umumnya memungkinkan alokasi memori yang lebih sedikit, sementara metode umumnya GetMaxByteCount dijalankan lebih cepat.

Data yang akan dikonversi, seperti data yang dibaca dari aliran, hanya dapat tersedia dalam blok berurutan. Dalam hal ini, atau jika jumlah data sangat besar sehingga perlu dibagi menjadi blok yang lebih kecil, gunakan Decoder atau Encoder yang disediakan oleh GetDecoder metode atau GetEncoder metode , masing-masing.

ASCIIEncoding tidak menyediakan deteksi kesalahan. Setiap karakter Unicode yang lebih besar dari U+007F dikodekan sebagai tanda tanya ASCII ("?").

Perhatian

Untuk alasan keamanan, Anda harus menggunakan UTF8Encoding, , UnicodeEncodingatau UTF32Encoding dan mengaktifkan deteksi kesalahan.

Berlaku untuk

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

Sumber:
ASCIIEncoding.cs
Sumber:
ASCIIEncoding.cs
Sumber:
ASCIIEncoding.cs

Penting

API ini bukan kompatibel CLS.

Alternatif kompatibel CLS
System.Text.ASCIIEncoding.GetBytes(Char[], Int32, Int32, Byte[], Int32)

Mengodekan sekumpulan karakter yang dimulai pada penunjuk karakter yang ditentukan ke dalam urutan byte yang disimpan mulai dari penunjuk byte yang ditentukan.

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

Parameter

chars
Char*

Penunjuk ke karakter pertama yang akan dikodekan.

charCount
Int32

Jumlah karakter yang akan dikodekan.

bytes
Byte*

Penunjuk ke lokasi untuk mulai menulis urutan byte yang dihasilkan.

byteCount
Int32

Jumlah maksimum byte yang akan ditulis.

Mengembalikan

Jumlah byte aktual yang ditulis di lokasi yang ditunjukkan oleh bytes.

Atribut

Pengecualian

charsadalah null.

-atau-

bytesadalah null.

charCount atau byteCount kurang dari nol.

byteCount kurang dari jumlah byte yang dihasilkan.

Fallback terjadi (untuk informasi selengkapnya, lihat Pengodean Karakter di .NET)

-dan-

EncoderFallback diatur ke EncoderExceptionFallback.

Keterangan

Untuk menghitung ukuran array yang tepat yang diperlukan oleh GetBytes untuk menyimpan byte yang dihasilkan, aplikasi menggunakan GetByteCount. Untuk menghitung ukuran array maksimum, aplikasi harus menggunakan GetMaxByteCount. Metode ini GetByteCount umumnya memungkinkan alokasi memori yang lebih sedikit, sementara metode umumnya GetMaxByteCount dijalankan lebih cepat.

Data yang akan dikonversi, seperti data yang dibaca dari aliran, hanya dapat tersedia dalam blok berurutan. Dalam hal ini, atau jika jumlah data sangat besar sehingga perlu dibagi menjadi blok yang lebih kecil, aplikasi harus menggunakan Decoder atau Encoder yang disediakan oleh GetDecoder metode atau GetEncoder metode .

ASCIIEncoding tidak menyediakan deteksi kesalahan. Setiap karakter Unicode yang lebih besar dari U+007F diterjemahkan ke tanda tanya ASCII ("?").

Perhatian

Untuk alasan keamanan, aplikasi Anda disarankan untuk menggunakan UTF8Encoding, , UnicodeEncodingatau UTF32Encoding dan mengaktifkan deteksi kesalahan.

Lihat juga

Berlaku untuk

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

Sumber:
ASCIIEncoding.cs
Sumber:
ASCIIEncoding.cs
Sumber:
ASCIIEncoding.cs

Mengodekan sekumpulan karakter dari array karakter yang ditentukan ke dalam array byte yang ditentukan.

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

Parameter

chars
Char[]

Array karakter yang berisi sekumpulan karakter untuk dikodekan.

charIndex
Int32

Indeks karakter pertama yang dikodekan.

charCount
Int32

Jumlah karakter yang akan dikodekan.

bytes
Byte[]

Array byte untuk berisi urutan byte yang dihasilkan.

byteIndex
Int32

Indeks untuk mulai menulis urutan byte yang dihasilkan.

Mengembalikan

Jumlah byte aktual yang ditulis ke dalam bytes.

Pengecualian

charsadalah null.

-atau-

bytesadalah null.

charIndex atau charCount atau byteIndex kurang dari nol.

-atau-

charIndex dan charCount tidak menunjukkan rentang yang valid dalam chars.

-atau-

byteIndex bukan indeks yang valid di bytes.

bytes tidak memiliki kapasitas yang cukup dari byteIndex hingga akhir array untuk mengakomodasi byte yang dihasilkan.

Fallback terjadi (untuk informasi selengkapnya, lihat Pengodean Karakter di .NET)

-dan-

EncoderFallback diatur ke EncoderExceptionFallback.

Contoh

Contoh berikut menunjukkan cara menggunakan GetBytes metode untuk mengodekan berbagai karakter dari string dan menyimpan karakter yang dikodekan dalam berbagai elemen dalam array byte.

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

Keterangan

Untuk menghitung ukuran array yang tepat yang diperlukan oleh GetBytes untuk menyimpan byte yang dihasilkan, aplikasi menggunakan GetByteCount. Untuk menghitung ukuran array maksimum, aplikasi harus menggunakan GetMaxByteCount. Metode ini GetByteCount umumnya memungkinkan alokasi memori yang lebih sedikit, sementara metode umumnya GetMaxByteCount dijalankan lebih cepat.

Data yang akan dikonversi, seperti data yang dibaca dari aliran, hanya dapat tersedia dalam blok berurutan. Dalam hal ini, atau jika jumlah data sangat besar sehingga perlu dibagi menjadi blok yang lebih kecil, aplikasi harus menggunakan Decoder atau Encoder yang disediakan oleh GetDecoder metode atau GetEncoder metode .

ASCIIEncoding tidak menyediakan deteksi kesalahan. Setiap karakter Unicode yang lebih besar dari U+007F dikodekan sebagai tanda tanya ASCII ("?").

Perhatian

Untuk alasan keamanan, aplikasi Anda disarankan untuk menggunakan UTF8Encoding, , UnicodeEncodingatau UTF32Encoding dan mengaktifkan deteksi kesalahan.

Lihat juga

Berlaku untuk

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

Sumber:
ASCIIEncoding.cs
Sumber:
ASCIIEncoding.cs
Sumber:
ASCIIEncoding.cs

Mengodekan sekumpulan karakter dari yang ditentukan String ke dalam array byte yang ditentukan.

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

Parameter

chars
String

String yang berisi sekumpulan karakter untuk dikodekan.

charIndex
Int32

Indeks karakter pertama yang dikodekan.

charCount
Int32

Jumlah karakter yang akan dikodekan.

bytes
Byte[]

Array byte untuk berisi urutan byte yang dihasilkan.

byteIndex
Int32

Indeks untuk mulai menulis urutan byte yang dihasilkan.

Mengembalikan

Jumlah byte aktual yang ditulis ke dalam bytes.

Pengecualian

sadalah null.

-atau-

bytesadalah null.

charIndex atau charCount atau byteIndex kurang dari nol.

-atau-

charIndex dan charCount tidak menunjukkan rentang yang valid dalam chars.

-atau-

byteIndex bukan indeks yang valid di bytes.

bytes tidak memiliki kapasitas yang cukup dari byteIndex hingga akhir array untuk mengakomodasi byte yang dihasilkan.

Fallback terjadi (untuk informasi selengkapnya, lihat Pengodean Karakter di .NET)

-dan-

EncoderFallback diatur ke EncoderExceptionFallback.

Contoh

Contoh berikut menunjukkan cara menggunakan GetBytes metode untuk mengodekan rentang elemen dari array karakter Unicode dan menyimpan byte yang dikodekan dalam berbagai elemen dalam array byte.

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

Keterangan

Untuk menghitung ukuran array yang tepat yang diperlukan oleh GetBytes untuk menyimpan byte yang dihasilkan, aplikasi menggunakan GetByteCount. Untuk menghitung ukuran array maksimum, aplikasi harus menggunakan GetMaxByteCount. Metode ini GetByteCount umumnya memungkinkan alokasi lebih sedikit memori, sementara GetMaxByteCount metode umumnya dijalankan lebih cepat.

Data yang akan dikonversi, seperti data yang dibaca dari aliran, hanya dapat tersedia dalam blok berurutan. Dalam hal ini, atau jika jumlah data sangat besar sehingga perlu dibagi menjadi blok yang lebih kecil, aplikasi harus menggunakan Decoder atau Encoder yang disediakan oleh GetDecoder metode atau GetEncoder metode .

ASCIIEncoding tidak memberikan deteksi kesalahan. Setiap karakter Unicode yang lebih besar dari U+007F dikodekan sebagai tanda tanya ASCII ("?").

Perhatian

Untuk alasan keamanan, aplikasi Anda disarankan untuk menggunakan UTF8Encoding, , UnicodeEncodingatau UTF32Encoding dan mengaktifkan deteksi kesalahan.

Lihat juga

Berlaku untuk