ASCIIEncoding.GetString 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.
Sobrecargas
GetString(Byte[]) | |
GetString(Byte[], Int32, Int32) |
Decodifica um intervalo de bytes de uma matriz de bytes em uma cadeia de caracteres. |
GetString(Byte[])
GetString(Byte[], Int32, Int32)
- Origem:
- ASCIIEncoding.cs
- Origem:
- ASCIIEncoding.cs
- Origem:
- ASCIIEncoding.cs
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 byteIndex, int byteCount);
public override string GetString (byte[] bytes, int byteIndex, int byteCount);
override this.GetString : byte[] * int * int -> string
Public Overrides Function GetString (bytes As Byte(), byteIndex As Integer, byteCount As Integer) As String
Parâmetros
- bytes
- Byte[]
A matriz de bytes que contém a sequência de bytes a ser decodificada.
- byteIndex
- Int32
O índice do primeiro byte a ser decodificado.
- byteCount
- 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.
Exceções
bytes
é null
.
index
ou count
é menor que zero.
- ou -
index
e count
não denotam um intervalo válido em bytes
.
Ocorreu um fallback (saiba mais em Codificação de caracteres no .NET)
-e-
DecoderFallback é definido como DecoderExceptionFallback.
Exemplos
O exemplo a seguir demonstra como usar o GetString método para converter uma matriz de bytes em um String.
using namespace System;
using namespace System::Text;
int main()
{
// Define a string.
String^ original = "ASCII Encoding Example";
// Instantiate an ASCII encoding object.
ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
// Create an ASCII byte array.
array<Byte>^ bytes = ascii->GetBytes(original);
// Display encoded bytes.
Console::Write("Encoded bytes (in hex): ");
for each (Byte value in bytes)
Console::Write("{0:X2} ", value);
Console::WriteLine();
// Decode the bytes and display the resulting Unicode string.
String^ decoded = ascii->GetString(bytes);
Console::WriteLine("Decoded string: '{0}'", decoded);
}
// The example displays the following output:
// Encoded bytes (in hex): 41 53 43 49 49 20 45 6E 63 6F 64 69 6E 67 20 45 78 61 6D 70 6C 65
// Decoded string: 'ASCII Encoding Example'
using System;
using System.Text;
class Example
{
public static void Main()
{
// Define a string.
String original = "ASCII Encoding Example";
// Instantiate an ASCII encoding object.
ASCIIEncoding ascii = new ASCIIEncoding();
// Create an ASCII byte array.
Byte[] bytes = ascii.GetBytes(original);
// Display encoded bytes.
Console.Write("Encoded bytes (in hex): ");
foreach (var value in bytes)
Console.Write("{0:X2} ", value);
Console.WriteLine();
// Decode the bytes and display the resulting Unicode string.
String decoded = ascii.GetString(bytes);
Console.WriteLine("Decoded string: '{0}'", decoded);
}
}
// The example displays the following output:
// Encoded bytes (in hex): 41 53 43 49 49 20 45 6E 63 6F 64 69 6E 67 20 45 78 61 6D 70 6C 65
// Decoded string: 'ASCII Encoding Example'
Imports System.Text
Module Example
Public Sub Main()
' Define a string.
Dim original As String = "ASCII Encoding Example"
' Instantiate an ASCII encoding object.
Dim ascii As New ASCIIEncoding()
' Create an ASCII byte array.
Dim bytes() As Byte = ascii.GetBytes(original)
' Display encoded bytes.
Console.Write("Encoded bytes (in hex): ")
For Each value In bytes
Console.Write("{0:X2} ", value)
Next
Console.WriteLine()
' Decode the bytes and display the resulting Unicode string.
Dim decoded As String = ascii.GetString(bytes)
Console.WriteLine("Decoded string: '{0}'", decoded)
End Sub
End Module
' The example displays the following output:
' Encoded bytes (in hex): 41 53 43 49 49 20 45 6E 63 6F 64 69 6E 67 20 45 78 61 6D 70 6C 65
' Decoded string: 'ASCII Encoding Example'
Comentários
Os dados a serem convertidos, como dados lidos de um fluxo, só podem estar disponíveis 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 ou o Encoder fornecido pelo método ou pelo GetDecoderGetEncoder método , respectivamente.
ASCIIEncoding não fornece detecção de erros. Qualquer byte maior que o 0x7F hexadecimal é decodificado como o ponto de interrogação Unicode ("?").
Cuidado
Por motivos de segurança, você deve usar as UTF8Encodingclasses , UnicodeEncodingou UTF32Encoding e habilitar a detecção de erros em vez de usar a ASCIIEncoding classe .
Confira também
- GetChars(Byte[], Int32, Int32, Char[], Int32)
- GetDecoder()
- GetCharCount(Byte[], Int32, Int32)
- GetMaxCharCount(Int32)