ASCIIEncoding.GetBytes Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.
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
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
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
- 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
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.