UTF7Encoding.GetString(Byte[], Int32, Int32) 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.
Mendekode rentang byte dari array byte menjadi string.
public:
override System::String ^ GetString(cli::array <System::Byte> ^ bytes, int index, int count);
public override string GetString (byte[] bytes, int index, int count);
[System.Runtime.InteropServices.ComVisible(false)]
public override string GetString (byte[] bytes, int index, int count);
override this.GetString : byte[] * int * int -> string
[<System.Runtime.InteropServices.ComVisible(false)>]
override this.GetString : byte[] * int * int -> string
Public Overrides Function GetString (bytes As Byte(), index As Integer, count As Integer) As String
Parameter
- bytes
- Byte[]
Array byte yang berisi urutan byte yang akan didekodekan.
- index
- Int32
Indeks byte pertama yang didekodekan.
- count
- Int32
Jumlah byte yang akan didekodekan.
Mengembalikan
yang String berisi hasil pendekodean urutan byte yang ditentukan.
- Atribut
Pengecualian
bytes
adalah null
(Nothing
).
index
atau count
kurang dari nol.
-atau-
index
dan count
tidak menunjukkan rentang yang valid dalam bytes
.
Fallback terjadi (untuk informasi selengkapnya, lihat Pengodean Karakter di .NET).
-dan-
DecoderFallback diatur ke DecoderExceptionFallback.
Contoh
Contoh kode berikut mengodekan string ke dalam array byte, lalu mendekode byte kembali ke dalam string.
using namespace System;
using namespace System::Text;
int main()
{
// Create an instance of UTF7Encoding.
UTF7Encoding^ u7 = gcnew UTF7Encoding( true );
// Create byte arrays from the same string containing the following characters:
// Latin Small Letter Z (U+007A)
// Latin Small Letter A (U+0061)
// Combining Breve (U+0306)
// Latin Small Letter AE With Acute (U+01FD)
// Greek Small Letter Beta (U+03B2)
String^ myStr = "za\u0306\u01FD\u03B2";
// Encode the string.
array<Byte>^myBArr = gcnew array<Byte>(u7->GetByteCount( myStr ));
u7->GetBytes( myStr, 0, myStr->Length, myBArr, 0 );
// Decode the byte array.
Console::WriteLine( "The new string is: {0}", u7->GetString( myBArr, 0, myBArr->Length ) );
}
/*
This code produces the following output. The question marks take the place of characters that cannot be displayed at the console.
The new string is: za??
*/
using System;
using System.Text;
public class SamplesUTF7Encoding {
public static void Main() {
// Create an instance of UTF7Encoding.
UTF7Encoding u7 = new UTF7Encoding( true );
// Create byte arrays from the same string containing the following characters:
// Latin Small Letter Z (U+007A)
// Latin Small Letter A (U+0061)
// Combining Breve (U+0306)
// Latin Small Letter AE With Acute (U+01FD)
// Greek Small Letter Beta (U+03B2)
String myStr = "za\u0306\u01FD\u03B2";
// Encode the string.
byte[] myBArr = new byte[u7.GetByteCount( myStr )];
u7.GetBytes( myStr, 0, myStr.Length, myBArr, 0 );
// Decode the byte array.
Console.WriteLine( "The new string is: {0}", u7.GetString( myBArr, 0, myBArr.Length ) );
}
}
/*
This code produces the following output. The question marks take the place of characters that cannot be displayed at the console.
The new string is: za??
*/
Imports System.Text
Public Class SamplesUTF7Encoding
Public Shared Sub Main()
' Create an instance of UTF7Encoding.
Dim u7 As New UTF7Encoding(True)
' Create byte arrays from the same string containing the following characters:
' Latin Small Letter Z (U+007A)
' Latin Small Letter A (U+0061)
' Combining Breve (U+0306)
' Latin Small Letter AE With Acute (U+01FD)
' Greek Small Letter Beta (U+03B2)
Dim myStr As String = "za" & ChrW(&H0306) & ChrW(&H01FD) & ChrW(&H03B2)
' Encode the string.
Dim myBArr(u7.GetByteCount(myStr)) As Byte
u7.GetBytes(myStr, 0, myStr.Length, myBArr, 0)
' Decode the byte array.
Console.WriteLine("The new string is: {0}", u7.GetString(myBArr, 0, myBArr.Length))
End Sub
End Class
'This code produces the following output. The question marks take the place of characters that cannot be displayed at the console.
'
'The new string is: za??ß
Keterangan
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 menyediakan deteksi kesalahan. Ketika byte tidak valid ditemukan, UTF7Encoding umumnya memancarkan byte yang tidak valid. Jika byte lebih besar dari 0x7F heksadesimal, nilai byte tidak diperluas ke dalam karakter Unicode, hasilnya disimpan dalam chars
array, dan urutan shift apa pun dihentikan. Misalnya, jika byte yang akan dikodekan adalah 0x81 heksadesimal, karakter yang dihasilkan adalah U+0081. Untuk alasan keamanan, aplikasi Anda disarankan untuk menggunakan UTF8Encoding, , UnicodeEncodingatau UTF32Encoding dan mengaktifkan deteksi kesalahan.