ASCIIEncoding.GetBytes 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.
Codifica um conjunto de caracteres em uma sequência de bytes.
Sobrecargas
GetBytes(ReadOnlySpan<Char>, Span<Byte>) |
Codifica o intervalo de caracteres especificado no intervalo de bytes especificado. |
GetBytes(Char*, Int32, Byte*, Int32) |
Codifica um conjunto de caracteres começando no ponteiro de caractere especificado em uma sequência de bytes que são armazenados a partir do ponteiro de bytes especificado. |
GetBytes(Char[], Int32, Int32, Byte[], Int32) |
Codifica um conjunto de caracteres da matriz de caracteres especificada na matriz de bytes especificada. |
GetBytes(String, Int32, Int32, Byte[], Int32) |
Codifica um conjunto de caracteres do String especificado na matriz de bytes especificada. |
GetBytes(ReadOnlySpan<Char>, Span<Byte>)
- Origem:
- ASCIIEncoding.cs
- Origem:
- ASCIIEncoding.cs
- Origem:
- ASCIIEncoding.cs
Codifica o intervalo de caracteres especificado no intervalo de bytes especificado.
public:
override int GetBytes(ReadOnlySpan<char> chars, Span<System::Byte> bytes);
public override int GetBytes (ReadOnlySpan<char> chars, Span<byte> bytes);
override this.GetBytes : ReadOnlySpan<char> * Span<byte> -> int
Public Overrides Function GetBytes (chars As ReadOnlySpan(Of Char), bytes As Span(Of Byte)) As Integer
Parâmetros
- chars
- ReadOnlySpan<Char>
O intervalo de caracteres a ser codificado.
Retornos
O número real de bytes gravados em bytes
.
Comentários
Para calcular o tamanho exato exigido por GetBytes para armazenar os bytes resultantes, use GetByteCount. Para calcular o tamanho máximo, use GetMaxByteCount. O método GetByteCount geralmente permite a alocação de menos memória, enquanto o método GetMaxByteCount geralmente é executado mais rapidamente.
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 for tão grande que precisar ser dividida em blocos menores, use o Decoder ou o Encoder fornecido pelo método GetDecoder ou pelo método GetEncoder, respectivamente.
ASCIIEncoding não fornece detecção de erros. Qualquer caractere Unicode maior que U+007F
é codificado como o ponto de interrogação ASCII ("?").
Cuidado
Por motivos de segurança, você deve usar UTF8Encoding, UnicodeEncodingou UTF32Encoding e habilitar a detecção de erros.
Aplica-se a
GetBytes(Char*, Int32, Byte*, Int32)
- Origem:
- ASCIIEncoding.cs
- Origem:
- ASCIIEncoding.cs
- Origem:
- ASCIIEncoding.cs
Importante
Esta API não está em conformidade com CLS.
- Alternativa em conformidade com CLS
- System.Text.ASCIIEncoding.GetBytes(Char[], Int32, Int32, Byte[], Int32)
Codifica um conjunto de caracteres começando no ponteiro de caractere especificado em uma sequência de bytes que são armazenados a partir do ponteiro de bytes especificado.
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
Parâmetros
- chars
- Char*
Um ponteiro para o primeiro caractere a ser codificado.
- charCount
- Int32
O número de caracteres a serem codificados.
- bytes
- Byte*
Um ponteiro para o local no qual começar a gravar a sequência resultante de bytes.
- byteCount
- Int32
O número máximo de bytes a serem gravados.
Retornos
O número real de bytes gravados no local indicado por bytes
.
- Atributos
Exceções
charCount
ou byteCount
é menor que zero.
byteCount
é menor que o número resultante de bytes.
Ocorreu um fallback (para obter mais informações, consulte codificação de caracteres no .NET)
-e-
EncoderFallback está definido como EncoderExceptionFallback.
Comentários
Para calcular o tamanho exato da matriz exigido por GetBytes para armazenar os bytes resultantes, o aplicativo usa GetByteCount. Para calcular o tamanho máximo da matriz, o aplicativo deve usar GetMaxByteCount. O método GetByteCount geralmente permite a alocação de menos memória, enquanto o método GetMaxByteCount geralmente é executado mais rapidamente.
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 GetDecoder ou pelo método GetEncoder, respectivamente.
ASCIIEncoding não fornece detecção de erros. Qualquer caractere Unicode maior que U+007F é traduzido para um ponto de interrogação ASCII ("?").
Cuidado
Por motivos de segurança, é recomendável que seu aplicativo use UTF8Encoding, UnicodeEncodingou UTF32Encoding e habilite a detecção de erros.
Confira também
Aplica-se a
GetBytes(Char[], Int32, Int32, Byte[], Int32)
- Origem:
- ASCIIEncoding.cs
- Origem:
- ASCIIEncoding.cs
- Origem:
- ASCIIEncoding.cs
Codifica um conjunto de caracteres da matriz de caracteres especificada na matriz de bytes especificada.
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
Parâmetros
- chars
- Char[]
A matriz de caracteres que contém o conjunto de caracteres a serem codificados.
- charIndex
- Int32
O índice do primeiro caractere a ser codificado.
- charCount
- Int32
O número de caracteres a serem codificados.
- bytes
- Byte[]
A matriz de bytes para conter a sequência resultante de bytes.
- byteIndex
- Int32
O índice no qual começar a gravar a sequência resultante de bytes.
Retornos
O número real de bytes gravados em bytes
.
Exceções
charIndex
ou charCount
ou byteIndex
é menor que zero.
-ou-
charIndex
e charCount
não denotar um intervalo válido no chars
.
-ou-
byteIndex
não é um índice válido no bytes
.
bytes
não tem capacidade suficiente de byteIndex
até o final da matriz para acomodar os bytes resultantes.
Ocorreu um fallback (para obter mais informações, consulte codificação de caracteres no .NET)
-e-
EncoderFallback está definido como EncoderExceptionFallback.
Exemplos
O exemplo a seguir demonstra como usar o método GetBytes para codificar um intervalo de caracteres de uma cadeia de caracteres e armazenar os caracteres codificados em um intervalo de elementos em uma matriz de bytes.
using namespace System;
using namespace System::Text;
using namespace System::Collections;
int main()
{
array<Byte>^bytes;
String^ chars = "ASCII Encoding Example";
ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
int byteCount = ascii->GetByteCount( chars->ToCharArray(), 6, 8 );
bytes = gcnew array<Byte>(byteCount);
int bytesEncodedCount = ascii->GetBytes( chars, 6, 8, bytes, 0 );
Console::WriteLine( " {0} bytes used to encode string.", 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 ASCIIEncodingExample {
public static void Main() {
Byte[] bytes;
String chars = "ASCII Encoding Example";
ASCIIEncoding ascii = new ASCIIEncoding();
int byteCount = ascii.GetByteCount(chars.ToCharArray(), 6, 8);
bytes = new Byte[byteCount];
int bytesEncodedCount = ascii.GetBytes(chars, 6, 8, bytes, 0);
Console.WriteLine(
"{0} bytes used to encode string.", bytesEncodedCount
);
Console.Write("Encoded bytes: ");
foreach (Byte b in bytes) {
Console.Write("[{0}]", b);
}
Console.WriteLine();
}
}
Imports System.Text
Class ASCIIEncodingExample
Public Shared Sub Main()
Dim bytes() As Byte
Dim chars As String = "ASCII Encoding Example"
Dim ascii As New ASCIIEncoding()
Dim byteCount As Integer = ascii.GetByteCount(chars.ToCharArray(), 6, 8)
bytes = New Byte(byteCount - 1) {}
Dim bytesEncodedCount As Integer = ascii.GetBytes(chars, 6, 8, bytes, 0)
Console.WriteLine("{0} bytes used to encode string.", 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
Comentários
Para calcular o tamanho exato da matriz exigido por GetBytes para armazenar os bytes resultantes, o aplicativo usa GetByteCount. Para calcular o tamanho máximo da matriz, o aplicativo deve usar GetMaxByteCount. O método GetByteCount geralmente permite a alocação de menos memória, enquanto o método GetMaxByteCount geralmente é executado mais rapidamente.
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 GetDecoder ou pelo método GetEncoder, respectivamente.
ASCIIEncoding não fornece detecção de erros. Qualquer caractere Unicode maior que U+007F é codificado como o ponto de interrogação ASCII ("?").
Cuidado
Por motivos de segurança, é recomendável que seu aplicativo use UTF8Encoding, UnicodeEncodingou UTF32Encoding e habilite a detecção de erros.
Confira também
Aplica-se a
GetBytes(String, Int32, Int32, Byte[], Int32)
- Origem:
- ASCIIEncoding.cs
- Origem:
- ASCIIEncoding.cs
- Origem:
- ASCIIEncoding.cs
Codifica um conjunto de caracteres do String especificado na matriz de bytes especificada.
public:
override int GetBytes(System::String ^ chars, int charIndex, int charCount, cli::array <System::Byte> ^ bytes, int byteIndex);
public override int GetBytes (string chars, int charIndex, int charCount, byte[] bytes, int byteIndex);
override this.GetBytes : string * int * int * byte[] * int -> int
Public Overrides Function GetBytes (chars As String, charIndex As Integer, charCount As Integer, bytes As Byte(), byteIndex As Integer) As Integer
Parâmetros
- charIndex
- Int32
O índice do primeiro caractere a ser codificado.
- charCount
- Int32
O número de caracteres a serem codificados.
- bytes
- Byte[]
A matriz de bytes para conter a sequência resultante de bytes.
- byteIndex
- Int32
O índice no qual começar a gravar a sequência resultante de bytes.
Retornos
O número real de bytes gravados em bytes
.
Exceções
charIndex
ou charCount
ou byteIndex
é menor que zero.
-ou-
charIndex
e charCount
não denotar um intervalo válido no chars
.
-ou-
byteIndex
não é um índice válido no bytes
.
bytes
não tem capacidade suficiente de byteIndex
até o final da matriz para acomodar os bytes resultantes.
Ocorreu um fallback (para obter mais informações, consulte codificação de caracteres no .NET)
-e-
EncoderFallback está definido como EncoderExceptionFallback.
Exemplos
O exemplo a seguir demonstra como usar o método GetBytes para codificar um intervalo de elementos de uma matriz de caracteres Unicode e armazenar os bytes codificados em um intervalo de elementos em uma matriz de bytes.
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'};
ASCIIEncoding^ ascii = gcnew ASCIIEncoding;
int byteCount = ascii->GetByteCount( chars, 1, 2 );
bytes = gcnew array<Byte>(byteCount);
int bytesEncodedCount = ascii->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 ASCIIEncodingExample {
public static void Main() {
Byte[] bytes;
// Unicode characters.
Char[] chars = new Char[] {
'\u0023', // #
'\u0025', // %
'\u03a0', // Pi
'\u03a3' // Sigma
};
ASCIIEncoding ascii = new ASCIIEncoding();
int byteCount = ascii.GetByteCount(chars, 1, 2);
bytes = new Byte[byteCount];
int bytesEncodedCount = ascii.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 ASCIIEncodingExample
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 ascii As New ASCIIEncoding()
Dim byteCount As Integer = ascii.GetByteCount(chars, 1, 2)
bytes = New Byte(byteCount - 1){}
Dim bytesEncodedCount As Integer = ascii.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
Comentários
Para calcular o tamanho exato da matriz exigido por GetBytes para armazenar os bytes resultantes, o aplicativo usa GetByteCount. Para calcular o tamanho máximo da matriz, o aplicativo deve usar GetMaxByteCount. O método GetByteCount geralmente permite a alocação de menos memória, enquanto o método GetMaxByteCount geralmente é executado mais rapidamente.
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 GetDecoder ou pelo método GetEncoder, respectivamente.
ASCIIEncoding não fornece detecção de erros. Qualquer caractere Unicode maior que U+007F é codificado como o ponto de interrogação ASCII ("?").
Cuidado
Por motivos de segurança, é recomendável que seu aplicativo use UTF8Encoding, UnicodeEncodingou UTF32Encoding e habilite a detecção de erros.