UTF8Encoding.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(String) |
Mengodekan karakter dalam objek tertentu String ke dalam urutan byte. |
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(String)
Mengodekan karakter dalam objek tertentu String ke dalam urutan byte.
public:
override cli::array <System::Byte> ^ GetBytes(System::String ^ s);
public override byte[] GetBytes (string s);
override this.GetBytes : string -> byte[]
Public Overrides Function GetBytes (s As String) As Byte()
Parameter
- s
- String
String karakter yang akan dikodekan.
Mengembalikan
Array byte yang berisi karakter yang dikodekan dalam string yang ditentukan oleh parameter s.
Berlaku untuk
GetBytes(ReadOnlySpan<Char>, Span<Byte>)
- Sumber:
- UTF8Encoding.cs
- Sumber:
- UTF8Encoding.cs
- Sumber:
- UTF8Encoding.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 yang tepat yang diperlukan oleh GetBytes untuk menyimpan byte yang dihasilkan, Anda memanggil GetByteCount metode . Untuk menghitung ukuran maksimum, Anda memanggil GetMaxByteCount metode . Metode ini GetByteCount umumnya mengalokasikan lebih sedikit memori, sementara GetMaxByteCount metode umumnya dijalankan lebih cepat.
Dengan deteksi kesalahan, urutan yang tidak valid menyebabkan metode ini melemparkan ArgumentException pengecualian. Tanpa deteksi kesalahan, urutan yang tidak valid diabaikan, dan tidak ada pengecualian yang dilemparkan.
Data yang akan dikonversi, seperti data yang dibaca dari aliran, mungkin hanya tersedia dalam blok berurutan. Dalam hal ini, atau jika jumlah data sangat besar sehingga perlu dibagi menjadi blok yang lebih kecil, gunakan Decoder atau yang Encoder dikembalikan oleh GetDecoder metode atau GetEncoder metode , masing-masing.
Untuk memastikan bahwa byte yang dikodekan didekode dengan benar ketika disimpan sebagai file atau sebagai aliran, Anda dapat mengawali aliran byte yang dikodekan dengan dapat dimulalui. Menyisipkan pembukaan di awal aliran byte (seperti di awal serangkaian byte yang akan ditulis ke file) adalah tanggung jawab pengembang. Metode GetBytes ini tidak menambahkan preamble ke awal urutan byte yang dikodekan.
Berlaku untuk
GetBytes(Char*, Int32, Byte*, Int32)
- Sumber:
- UTF8Encoding.cs
- Sumber:
- UTF8Encoding.cs
- Sumber:
- UTF8Encoding.cs
Penting
API ini bukan kompatibel CLS.
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.
Deteksi kesalahan diaktifkan, dan chars
berisi urutan karakter yang tidak valid.
-atau-
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, Anda memanggil GetByteCount metode . Untuk menghitung ukuran array maksimum, Anda memanggil GetMaxByteCount metode . Metode ini GetByteCount umumnya mengalokasikan lebih sedikit memori, sementara GetMaxByteCount metode umumnya dijalankan lebih cepat.
Dengan deteksi kesalahan, urutan yang tidak valid menyebabkan metode ini melemparkan ArgumentException pengecualian. Tanpa deteksi kesalahan, urutan yang tidak valid diabaikan, dan tidak ada pengecualian yang dilemparkan.
Data yang akan dikonversi, seperti data yang dibaca dari aliran, mungkin hanya tersedia dalam blok berurutan. Dalam hal ini, atau jika jumlah data sangat besar sehingga perlu dibagi menjadi blok yang lebih kecil, gunakan Decoder atau yang Encoder dikembalikan oleh GetDecoder metode atau GetEncoder metode , masing-masing.
Untuk memastikan bahwa byte yang dikodekan didekode dengan benar ketika disimpan sebagai file atau sebagai aliran, Anda dapat mengawali aliran byte yang dikodekan dengan dapat dimulalui. Menyisipkan pembukaan di awal aliran byte (seperti di awal serangkaian byte yang akan ditulis ke file) adalah tanggung jawab pengembang. Metode GetBytes ini tidak menambahkan preamble ke awal urutan byte yang dikodekan.
Lihat juga
Berlaku untuk
GetBytes(Char[], Int32, Int32, Byte[], Int32)
- Sumber:
- UTF8Encoding.cs
- Sumber:
- UTF8Encoding.cs
- Sumber:
- UTF8Encoding.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 yang akan dikodekan.
- charIndex
- Int32
Indeks karakter pertama yang akan 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
jangan menandakan rentang yang valid di chars
.
-atau-
byteIndex
bukan indeks yang valid di bytes
.
Deteksi kesalahan diaktifkan, dan chars
berisi urutan karakter yang tidak valid.
-atau-
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 menggunakan GetBytes metode untuk mengodekan rentang karakter dari string dan menyimpan byte yang dikodekan dalam rentang elemen dalam array byte.
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
array<Byte>^bytes;
String^ chars = "UTF8 Encoding Example";
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
int byteCount = utf8->GetByteCount( chars->ToCharArray(), 0, 13 );
bytes = gcnew array<Byte>(byteCount);
int bytesEncodedCount = utf8->GetBytes( chars, 0, 13, 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 UTF8EncodingExample {
public static void Main() {
Byte[] bytes;
String chars = "UTF8 Encoding Example";
UTF8Encoding utf8 = new UTF8Encoding();
int byteCount = utf8.GetByteCount(chars.ToCharArray(), 0, 13);
bytes = new Byte[byteCount];
int bytesEncodedCount = utf8.GetBytes(chars, 0, 13, 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 UTF8EncodingExample
Public Shared Sub Main()
Dim bytes() As Byte
Dim chars As String = "UTF8 Encoding Example"
Dim utf8 As New UTF8Encoding()
Dim byteCount As Integer = utf8.GetByteCount(chars.ToCharArray(), 0, 13)
bytes = New Byte(byteCount - 1) {}
Dim bytesEncodedCount As Integer = utf8.GetBytes(chars, 0, 13, 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, Anda memanggil GetByteCount metode . Untuk menghitung ukuran array maksimum, Anda memanggil GetMaxByteCount metode . Metode ini GetByteCount umumnya mengalokasikan lebih sedikit memori, sementara GetMaxByteCount metode umumnya dijalankan lebih cepat.
Dengan deteksi kesalahan, urutan yang tidak valid menyebabkan metode ini melemparkan ArgumentException pengecualian. Tanpa deteksi kesalahan, urutan yang tidak valid diabaikan, dan tidak ada pengecualian yang dilemparkan.
Data yang akan dikonversi, seperti data yang dibaca dari aliran, mungkin hanya 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.
Untuk memastikan bahwa byte yang dikodekan didekode dengan benar ketika disimpan sebagai file atau sebagai aliran, Anda dapat mengawali aliran byte yang dikodekan dengan dapat dimulalui. Menyisipkan pembukaan di awal aliran byte (seperti di awal serangkaian byte yang akan ditulis ke file) adalah tanggung jawab pengembang. Metode GetBytes ini tidak menambahkan preamble ke awal urutan byte yang dikodekan.
Lihat juga
Berlaku untuk
GetBytes(String, Int32, Int32, Byte[], Int32)
- Sumber:
- UTF8Encoding.cs
- Sumber:
- UTF8Encoding.cs
- Sumber:
- UTF8Encoding.cs
Mengodekan sekumpulan karakter dari yang ditentukan String ke dalam array byte yang ditentukan.
public:
override int GetBytes(System::String ^ s, int charIndex, int charCount, cli::array <System::Byte> ^ bytes, int byteIndex);
public override int GetBytes (string s, int charIndex, int charCount, byte[] bytes, int byteIndex);
override this.GetBytes : string * int * int * byte[] * int -> int
Public Overrides Function GetBytes (s As String, charIndex As Integer, charCount As Integer, bytes As Byte(), byteIndex As Integer) As Integer
Parameter
- charIndex
- Int32
Indeks karakter pertama yang akan 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
jangan menandakan rentang yang valid di chars
.
-atau-
byteIndex
bukan indeks yang valid di bytes
.
Deteksi kesalahan diaktifkan, dan s
berisi urutan karakter yang tidak valid.
-atau-
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 menggunakan GetBytes metode untuk mengodekan rentang elemen dari array karakter Unicode dan menyimpan byte yang dikodekan dalam rentang 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'};
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
int byteCount = utf8->GetByteCount( chars, 1, 2 );
bytes = gcnew array<Byte>(byteCount);
int bytesEncodedCount = utf8->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 UTF8EncodingExample {
public static void Main() {
Byte[] bytes;
// Unicode characters.
Char[] chars = new Char[] {
'\u0023', // #
'\u0025', // %
'\u03a0', // Pi
'\u03a3' // Sigma
};
UTF8Encoding utf8 = new UTF8Encoding();
int byteCount = utf8.GetByteCount(chars, 1, 2);
bytes = new Byte[byteCount];
int bytesEncodedCount = utf8.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 UTF8EncodingExample
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 utf8 As New UTF8Encoding()
Dim byteCount As Integer = utf8.GetByteCount(chars, 1, 2)
bytes = New Byte(byteCount - 1) {}
Dim bytesEncodedCount As Integer = utf8.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, Anda memanggil GetByteCount metode . Untuk menghitung ukuran array maksimum, Anda memanggil GetMaxByteCount metode . Metode ini GetByteCount umumnya mengalokasikan lebih sedikit memori, sementara GetMaxByteCount metode umumnya dijalankan lebih cepat.
Dengan deteksi kesalahan, urutan yang tidak valid menyebabkan metode ini melemparkan ArgumentException pengecualian. Tanpa deteksi kesalahan, urutan yang tidak valid diabaikan, dan tidak ada pengecualian yang dilemparkan.
Data yang akan dikonversi, seperti data yang dibaca dari aliran, mungkin hanya 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.
Untuk memastikan bahwa byte yang dikodekan didekode dengan benar ketika disimpan sebagai file atau sebagai aliran, Anda dapat mengawali aliran byte yang dikodekan dengan dapat dimulalui. Menyisipkan pembukaan di awal aliran byte (seperti di awal serangkaian byte yang akan ditulis ke file) adalah tanggung jawab pengembang. Metode GetBytes ini tidak menambahkan preamble ke awal urutan byte yang dikodekan.