UTF7Encoding.GetString(Byte[], Int32, Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Decodifica um intervalo de bytes de uma matriz de bytes em uma cadeia de caracteres.
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
Parâmetros
- bytes
- Byte[]
A matriz de bytes que contém a sequência de bytes a serem decodificados.
- index
- Int32
O índice do primeiro byte a ser decodificado.
- count
- Int32
O número de bytes a serem decodificados.
Retornos
Um String que contém os resultados da decodificação da sequência de bytes especificada.
- Atributos
Exceções
bytes é null (Nothing).
index ou count é menor que zero.
-ou-
index e count não denotar um intervalo válido em bytes.
Ocorreu um fallback (para obter mais informações, consulte Codificação doCharacter em .NET).
-e-
DecoderFallback é definido como DecoderExceptionFallback.
Exemplos
O exemplo de código a seguir codifica uma cadeia de caracteres em uma matriz de bytes e, em seguida, decodifica os bytes novamente em uma cadeia de caracteres.
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??ß
Comentários
Os dados a serem convertidos, como dados lidos de um fluxo, podem estar disponíveis apenas em blocos sequenciais. Nesse caso, ou se a quantidade de dados é tão grande que precisa ser dividida em blocos menores, o aplicativo deve usar o Decoder método ou o Encoder fornecido pelo GetDecoder método ou pelo GetEncoder método, respectivamente.
Note
UTF7Encoding não fornece detecção de erros. Quando bytes inválidos são encontrados, UTF7Encoding geralmente emite os bytes inválidos. Se um byte for maior que o 0x7F hexadecimal, o valor do byte será estendido zero em um caractere Unicode, o resultado será armazenado na chars matriz e qualquer sequência de turno será encerrada. Por exemplo, se o byte a ser codificado for hexadecimal 0x81, o caractere resultante será U+0081. Por motivos de segurança, recomendamos que seus aplicativos usem UTF8EncodingUnicodeEncodingou UTF32Encoding habilitem a detecção de erros.