UTF7Encoding.GetString(Byte[], Int32, Int32) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Descodifica um intervalo de bytes de um array de bytes para uma cadeia.
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[]
O array de bytes que contém a sequência de bytes a decodificar.
- index
- Int32
O índice do primeiro byte a descodificar.
- count
- Int32
O número de bytes a descodificar.
Devoluções
A contendo String os resultados da decodificação da sequência especificada de bytes.
- Atributos
Exceções
bytes é null (Nothing).
index ou count é inferior a zero.
-ou-
index e count não denotam um intervalo válido em bytes.
Ocorreu um recurso de recurso (para mais informações, ver Codificação de Caracteres em .NET).
- e -
DecoderFallback está definido como DecoderExceptionFallback.
Exemplos
O exemplo de código seguinte codifica uma cadeia num array de bytes, e depois decodifica os bytes novamente numa cadeia.
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??ß
Observações
Os dados a converter, como dados lidos de um fluxo, podem estar disponíveis apenas em blocos sequenciais. Neste caso, ou se a quantidade de dados for tão grande que precisa de ser dividida em blocos mais pequenos, a aplicação deve usar o Decoder ou o Encoder fornecido pelo GetDecoder método ou pelo GetEncoder método, respetivamente.
Note
UTF7Encoding não fornece deteção de erros. Quando são encontrados bytes inválidos, UTF7Encoding geralmente emitem os bytes inválidos. Se um byte for maior do que 0x7F hexadecimal, o valor do byte é estendido a zero para um carácter Unicode, o resultado é armazenado no chars array, e qualquer sequência de deslocamento é terminada. Por exemplo, se o byte a codificar for 0x81 hexadecimal, o carácter resultante é U+0081. Por razões de segurança, recomenda-se que as suas aplicações utilizem UTF8Encoding, UnicodeEncoding, ou UTF32Encoding e ativem a deteção de erros.