Bagikan melalui


UTF7Encoding.GetBytes Metode

Definisi

Mengodekan sekumpulan karakter ke dalam urutan byte.

Overload

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(Char*, Int32, Byte*, Int32)

Sumber:
UTF7Encoding.cs
Sumber:
UTF7Encoding.cs
Sumber:
UTF7Encoding.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

chars adalah null (Nothing).

-atau-

bytes adalah null (Nothing).

charCount atau byteCount kurang dari nol.

byteCount kurang dari jumlah byte yang dihasilkan.

Fallback terjadi (lihat Pengodean Karakter di .NET untuk penjelasan yang lebih lengkap).

-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 lebih sedikit memori, sementara GetMaxByteCount metode umumnya dijalankan lebih cepat.

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, aplikasi harus menggunakan Decoder atau Encoder yang disediakan oleh GetDecoder metode atau GetEncoder metode .

Catatan

UTF7Encoding tidak memberikan deteksi kesalahan. Karakter yang tidak valid dikodekan sebagai karakter dasar 64 yang dimodifikasi. 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:
UTF7Encoding.cs
Sumber:
UTF7Encoding.cs
Sumber:
UTF7Encoding.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

chars adalah null (Nothing).

-atau-

bytes adalah null (Nothing).

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.

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

Fallback terjadi (lihat Pengodean Karakter di .NET untuk penjelasan yang lebih lengkap).

-dan-

EncoderFallback diatur ke EncoderExceptionFallback.

Contoh

Contoh kode berikut menunjukkan cara menggunakan GetBytes metode untuk mengodekan berbagai karakter dari String 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'};
   UTF7Encoding^ utf7 = gcnew UTF7Encoding;
   int byteCount = utf7->GetByteCount( chars, 1, 2 );
   bytes = gcnew array<Byte>(byteCount);
   int bytesEncodedCount = utf7->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 UTF7EncodingExample {
    public static void Main() {
        Byte[] bytes;
        // Unicode characters.
        Char[] chars = new Char[] {
            '\u0023', // #
            '\u0025', // %
            '\u03a0', // Pi
            '\u03a3'  // Sigma
        };
        
        UTF7Encoding utf7 = new UTF7Encoding();
        
        int byteCount = utf7.GetByteCount(chars, 1, 2);
        bytes = new Byte[byteCount];
        int bytesEncodedCount = utf7.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 UTF7EncodingExample
    
    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 utf7 As New UTF7Encoding()
        
        Dim byteCount As Integer = utf7.GetByteCount(chars, 1, 2)
        bytes = New Byte(byteCount - 1) {}
        Dim bytesEncodedCount As Integer = utf7.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, mungkin hanya 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 .

Catatan

UTF7Encoding tidak memberikan deteksi kesalahan. Karakter yang tidak valid dikodekan sebagai karakter dasar 64 yang dimodifikasi. 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:
UTF7Encoding.cs
Sumber:
UTF7Encoding.cs
Sumber:
UTF7Encoding.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);
[System.Runtime.InteropServices.ComVisible(false)]
public override int GetBytes (string s, int charIndex, int charCount, byte[] bytes, int byteIndex);
override this.GetBytes : string * int * int * byte[] * int -> int
[<System.Runtime.InteropServices.ComVisible(false)>]
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

s
String

yang String 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.

Atribut

Pengecualian

s adalah null (Nothing).

-atau-

bytes adalah null (Nothing).

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.

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

Fallback terjadi (lihat Pengodean Karakter di .NET untuk penjelasan yang lebih lengkap).

-dan-

EncoderFallback diatur ke EncoderExceptionFallback.

Contoh

Contoh kode berikut menunjukkan cara menggunakan GetBytes metode untuk mengodekan berbagai 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'};
   UTF7Encoding^ utf7 = gcnew UTF7Encoding;
   int byteCount = utf7->GetByteCount( chars, 1, 2 );
   bytes = gcnew array<Byte>(byteCount);
   int bytesEncodedCount = utf7->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 UTF7EncodingExample {
    public static void Main() {
        Byte[] bytes;
        // Unicode characters.
        Char[] chars = new Char[] {
            '\u0023', // #
            '\u0025', // %
            '\u03a0', // Pi
            '\u03a3'  // Sigma
        };
        
        UTF7Encoding utf7 = new UTF7Encoding();
        
        int byteCount = utf7.GetByteCount(chars, 1, 2);
        bytes = new Byte[byteCount];
        int bytesEncodedCount = utf7.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 UTF7EncodingExample
    
    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 utf7 As New UTF7Encoding()
        
        Dim byteCount As Integer = utf7.GetByteCount(chars, 1, 2)
        bytes = New Byte(byteCount - 1) {}
        Dim bytesEncodedCount As Integer = utf7.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, mungkin hanya 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 .

Catatan

UTF7Encoding tidak memberikan deteksi kesalahan. Karakter yang tidak valid dikodekan sebagai karakter dasar 64 yang dimodifikasi. Untuk alasan keamanan, aplikasi Anda disarankan untuk menggunakan UTF8Encoding, , UnicodeEncodingatau UTF32Encoding dan mengaktifkan deteksi kesalahan.

Lihat juga

Berlaku untuk