UTF8Encoding.GetByteCount UTF8Encoding.GetByteCount UTF8Encoding.GetByteCount UTF8Encoding.GetByteCount Method

Definición

Calcula el número de bytes generado mediante la codificación de un juego de caracteres.Calculates the number of bytes produced by encoding a set of characters.

Sobrecargas

GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>)

Calcula el número de bytes generado al codificar el intervalo de caracteres especificado.Calculates the number of bytes produced by encoding the specified character span.

GetByteCount(String) GetByteCount(String) GetByteCount(String) GetByteCount(String)

Calcula el número de bytes generado al codificar los caracteres del objeto String especificado.Calculates the number of bytes produced by encoding the characters in the specified String.

GetByteCount(Char*, Int32) GetByteCount(Char*, Int32) GetByteCount(Char*, Int32)

Calcula el número de bytes generado mediante la codificación de un juego de caracteres a partir del puntero de caracteres especificado.Calculates the number of bytes produced by encoding a set of characters starting at the specified character pointer.

GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32)

Calcula el número de bytes generado mediante la codificación de un juego de caracteres de la matriz de caracteres especificada.Calculates the number of bytes produced by encoding a set of characters from the specified character array.

GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>) GetByteCount(ReadOnlySpan<Char>)

Calcula el número de bytes generado al codificar el intervalo de caracteres especificado.Calculates the number of bytes produced by encoding the specified character span.

public:
 override int GetByteCount(ReadOnlySpan<char> chars);
public override int GetByteCount (ReadOnlySpan<char> chars);
override this.GetByteCount : ReadOnlySpan<char> -> int
Public Overrides Function GetByteCount (chars As ReadOnlySpan(Of Char)) As Integer

Parámetros

chars
ReadOnlySpan<Char>

Intervalo que contiene el juego de caracteres que se codificará.The span that contains the set of characters to encode.

Devoluciones

Número de bytes generado al codificar el intervalo de caracteres especificado.The number of bytes produced by encoding the specified character span.

Excepciones

Está habilitada la detección de errores, y chars contiene una secuencia de caracteres no válida.Error detection is enabled, and chars contains an invalid sequence of characters.

Se ha producido una acción de reserva (vea Codificación de caracteres en .NET Framework para obtener una explicación completa).A fallback occurred (see Character Encoding in the .NET Framework for complete explanation) - y --and- El valor de EncoderFallback está establecido en EncoderExceptionFallback.EncoderFallback is set to EncoderExceptionFallback.

Comentarios

Para calcular el tamaño exacto necesario GetBytes para almacenar los bytes resultantes, se llama al GetByteCount método.To calculate the exact size required by GetBytes to store the resulting bytes, you call the GetByteCount method. Para calcular el tamaño máximo, llame al GetMaxByteCount método.To calculate the maximum size, you call the GetMaxByteCount method. El GetByteCount método generalmente asigna menos memoria, mientras que el GetMaxByteCount método se ejecuta normalmente más rápido.The GetByteCount method generally allocates less memory, while the GetMaxByteCount method generally executes faster.

Con la detección de errores, una secuencia no válida hace que este ArgumentException método produzca una excepción.With error detection, an invalid sequence causes this method to throw an ArgumentException exception. Sin detección de errores, se omiten las secuencias no válidas y no se produce ninguna excepción.Without error detection, invalid sequences are ignored, and no exception is thrown.

Para asegurarse de que los bytes codificados se descodifican correctamente cuando se guardan como un archivo o como un flujo, puede prefijar un flujo de bytes codificados con un preámbulo.To ensure that the encoded bytes are decoded properly when they are saved as a file or as a stream, you can prefix a stream of encoded bytes with a preamble. Insertar el preámbulo al principio de una secuencia de bytes (como al principio de una serie de bytes que se va a escribir en un archivo) es responsabilidad del desarrollador y el número de bytes del preámbulo no se refleja en el valor devuelto por el GetByteCount método.Inserting the preamble at the beginning of a byte stream (such as at the beginning of a series of bytes to be written to a file) is the developer's responsibility, and the number of bytes in the preamble is not reflected in the value returned by the GetByteCount method.

GetByteCount(String) GetByteCount(String) GetByteCount(String) GetByteCount(String)

Calcula el número de bytes generado al codificar los caracteres del objeto String especificado.Calculates the number of bytes produced by encoding the characters in the specified String.

public:
 override int GetByteCount(System::String ^ chars);
public override int GetByteCount (string chars);
override this.GetByteCount : string -> int
Public Overrides Function GetByteCount (chars As String) As Integer

Parámetros

chars
String String String String

String que contiene el juego de caracteres que se va a codificar.The String containing the set of characters to encode.

Devoluciones

Número de bytes que se generan al codificar los caracteres especificados.The number of bytes produced by encoding the specified characters.

Excepciones

El número de bytes resultante es mayor que el número máximo que se puede devolver como entero.The resulting number of bytes is greater than the maximum number that can be returned as an integer.

Está habilitada la detección de errores, y chars contiene una secuencia de caracteres no válida.Error detection is enabled, and chars contains an invalid sequence of characters.

Se ha producido una acción de reserva (vea Codificación de caracteres en .NET Framework para obtener una explicación completa).A fallback occurred (see Character Encoding in the .NET Framework for complete explanation) - y --and- El valor de EncoderFallback está establecido en EncoderExceptionFallback.EncoderFallback is set to EncoderExceptionFallback.

Ejemplos

En el ejemplo siguiente se GetMaxByteCount llama GetByteCount(String) a los métodos y para calcular el número máximo y real de bytes necesarios para codificar una cadena.The following example calls the GetMaxByteCount and GetByteCount(String) methods to calculate the maximum and actual number of bytes required to encode a string. También muestra el número real de bytes necesarios para almacenar una secuencia de bytes con una marca de orden de bytes.It also displays the actual number of bytes required to store a byte stream with a byte order mark.

using System;
using System.Text;

class UTF8EncodingExample {
    public static void Main() {
        String chars = "UTF8 Encoding Example";
        Encoding utf8 = Encoding.UTF8;

        Console.WriteLine("Bytes needed to encode '{0}':", chars);
        Console.WriteLine("   Maximum:         {0}",
                          utf8.GetMaxByteCount(chars.Length));
        Console.WriteLine("   Actual:          {0}",
                          utf8.GetByteCount(chars));
        Console.WriteLine("   Actual with BOM: {0}",
                          utf8.GetByteCount(chars) + utf8.GetPreamble().Length);
    }
}
// The example displays the following output:
//       Bytes needed to encode 'UTF8 Encoding Example':
//          Maximum:         66
//          Actual:          21
//          Actual with BOM: 24
Imports System.Text

Module Example
    Public Sub Main()
        Dim chars As String = "UTF8 Encoding Example"
        Dim utf8 As Encoding = Encoding.UTF8

        Console.WriteLine("Bytes needed to encode '{0}':", chars)
        Console.WriteLine("   Maximum:         {0}",
                          utf8.GetMaxByteCount(chars.Length))
        Console.WriteLine("   Actual:          {0}",
                          utf8.GetByteCount(chars))
        Console.WriteLine("   Actual with BOM: {0}",
                          utf8.GetByteCount(chars) + utf8.GetPreamble().Length)
    End Sub
End Module
' The example displays the following output:
'       Bytes needed to encode 'UTF8 Encoding Example':
'          Maximum:         66
'          Actual:          21
'          Actual with BOM: 24

Comentarios

Para calcular el tamaño exacto de la matriz GetBytes que requiere para almacenar los bytes resultantes, GetByteCount se llama al método.To calculate the exact array size required by GetBytes to store the resulting bytes, you call the GetByteCount method. Para calcular el tamaño máximo de la matriz, llame GetMaxByteCount al método.To calculate the maximum array size, you call the GetMaxByteCount method. El GetByteCount método generalmente asigna menos memoria, mientras que el GetMaxByteCount método se ejecuta normalmente más rápido.The GetByteCount method generally allocates less memory, while the GetMaxByteCount method generally executes faster.

Con la detección de errores, una secuencia no válida hace que este ArgumentException método produzca una excepción.With error detection, an invalid sequence causes this method to throw an ArgumentException exception. Sin detección de errores, se omiten las secuencias no válidas y no se produce ninguna excepción.Without error detection, invalid sequences are ignored, and no exception is thrown.

Para asegurarse de que los bytes codificados se descodifican correctamente cuando se guardan como un archivo o como un flujo, puede prefijar un flujo de bytes codificados con un preámbulo.To ensure that the encoded bytes are decoded properly when they are saved as a file or as a stream, you can prefix a stream of encoded bytes with a preamble. Insertar el preámbulo al principio de una secuencia de bytes (como al principio de una serie de bytes que se va a escribir en un archivo) es responsabilidad del desarrollador y el número de bytes del preámbulo no se refleja en el valor devuelto por el GetByteCount método.Inserting the preamble at the beginning of a byte stream (such as at the beginning of a series of bytes to be written to a file) is the developer's responsibility, and the number of bytes in the preamble is not reflected in the value returned by the GetByteCount method.

Consulte también:

GetByteCount(Char*, Int32) GetByteCount(Char*, Int32) GetByteCount(Char*, Int32)

Importante

Esta API no es conforme a CLS.

Calcula el número de bytes generado mediante la codificación de un juego de caracteres a partir del puntero de caracteres especificado.Calculates the number of bytes produced by encoding a set of characters starting at the specified character pointer.

public:
 override int GetByteCount(char* chars, int count);
[System.CLSCompliant(false)]
[System.Runtime.InteropServices.ComVisible(false)]
[System.Security.SecurityCritical]
public override int GetByteCount (char* chars, int count);
override this.GetByteCount : nativeptr<char> * int -> int

Parámetros

chars
Char*

Puntero al primer carácter que se va a codificar.A pointer to the first character to encode.

count
Int32 Int32 Int32 Int32

Número de caracteres que se van a codificar.The number of characters to encode.

Devoluciones

Número de bytes que se generan al codificar los caracteres especificados.The number of bytes produced by encoding the specified characters.

Excepciones

count es menor que cero.count is less than zero.

O bien-or- El número de bytes resultante es mayor que el número máximo que se puede devolver como entero.The resulting number of bytes is greater than the maximum number that can be returned as an integer.

Está habilitada la detección de errores, y chars contiene una secuencia de caracteres no válida.Error detection is enabled, and chars contains an invalid sequence of characters.

Se ha producido una acción de reserva (vea Codificación de caracteres en .NET Framework para obtener una explicación completa).A fallback occurred (see Character Encoding in the .NET Framework for a complete explanation) - y --and- El valor de EncoderFallback está establecido en EncoderExceptionFallback.EncoderFallback is set to EncoderExceptionFallback.

Comentarios

Para calcular el tamaño exacto de la matriz que GetBytes requiere el método para almacenar los bytes resultantes, GetByteCount se llama al método.To calculate the exact array size required by the GetBytes method to store the resulting bytes, you call the GetByteCount method. Para calcular el tamaño máximo de la matriz, llame GetMaxByteCount al método.To calculate the maximum array size, you call the GetMaxByteCount method. El GetByteCount método generalmente asigna menos memoria, mientras que el GetMaxByteCount método se ejecuta normalmente más rápido.The GetByteCount method generally allocates less memory, while the GetMaxByteCount method generally executes faster.

Con la detección de errores, una secuencia no válida hace que este ArgumentException método produzca una excepción.With error detection, an invalid sequence causes this method to throw an ArgumentException exception. Sin detección de errores, se omiten las secuencias no válidas y no se produce ninguna excepción.Without error detection, invalid sequences are ignored, and no exception is thrown.

Para asegurarse de que los bytes codificados se descodifican correctamente cuando se guardan como un archivo o como un flujo, puede prefijar un flujo de bytes codificados con un preámbulo.To ensure that the encoded bytes are decoded properly when they are saved as a file or as a stream, you can prefix a stream of encoded bytes with a preamble. Insertar el preámbulo al principio de una secuencia de bytes (como al principio de una serie de bytes que se va a escribir en un archivo) es responsabilidad del desarrollador y el número de bytes del preámbulo no se refleja en el valor devuelto por el GetByteCount método.Inserting the preamble at the beginning of a byte stream (such as at the beginning of a series of bytes to be written to a file) is the developer's responsibility, and the number of bytes in the preamble is not reflected in the value returned by the GetByteCount method.

Seguridad

SecurityCriticalAttribute
Requiere plena confianza para el llamador inmediato.Requires full trust for the immediate caller. Este miembro no puede ser utilizado por código transparente o de confianza parcial.This member cannot be used by partially trusted or transparent code.

Consulte también:

GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32) GetByteCount(Char[], Int32, Int32)

Calcula el número de bytes generado mediante la codificación de un juego de caracteres de la matriz de caracteres especificada.Calculates the number of bytes produced by encoding a set of characters from the specified character array.

public:
 override int GetByteCount(cli::array <char> ^ chars, int index, int count);
public override int GetByteCount (char[] chars, int index, int count);
override this.GetByteCount : char[] * int * int -> int
Public Overrides Function GetByteCount (chars As Char(), index As Integer, count As Integer) As Integer

Parámetros

chars
Char[]

Matriz de caracteres que contiene el juego de caracteres que se va a codificar.The character array containing the set of characters to encode.

index
Int32 Int32 Int32 Int32

Índice del primer carácter que se va a codificar.The index of the first character to encode.

count
Int32 Int32 Int32 Int32

Número de caracteres que se van a codificar.The number of characters to encode.

Devoluciones

Número de bytes que se generan al codificar los caracteres especificados.The number of bytes produced by encoding the specified characters.

Excepciones

index o count es menor que cero.index or count is less than zero.

O bien-or- index y count no denotan un intervalo válido en chars.index and count do not denote a valid range in chars.

O bien-or- El número de bytes resultante es mayor que el número máximo que se puede devolver como entero.The resulting number of bytes is greater than the maximum number that can be returned as an integer.

Está habilitada la detección de errores, y chars contiene una secuencia de caracteres no válida.Error detection is enabled, and chars contains an invalid sequence of characters.

Se ha producido una acción de reserva (vea Codificación de caracteres en .NET Framework para obtener una explicación completa).A fallback occurred (see Character Encoding in the .NET Framework for complete explanation) - y --and- La propiedad EncoderFallback se establece en EncoderExceptionFallback.The EncoderFallback property is set to EncoderExceptionFallback.

Ejemplos

En el ejemplo siguiente se rellena una matriz con caracteres latinos en mayúsculas y minúsculas GetByteCount(Char[], Int32, Int32) , y se llama al método para determinar el número de bytes necesarios para codificar los caracteres latinos en minúsculas.The following example populates an array with a Latin uppercase and lowercase characters and calls the GetByteCount(Char[], Int32, Int32) method to determine the number of bytes needed to encode the Latin lowercase characters. A continuación, muestra esta información junto con el número total de bytes necesarios si se agrega una marca de orden de bytes.It then displays this information along with the total number of bytes needed if a byte order mark is added. Compara este número con el valor devuelto por el GetMaxByteCount método, que indica el número máximo de bytes necesarios para codificar los caracteres latinos en minúsculas.It compares this number with the value returned by the GetMaxByteCount method, which indicates maximum number of bytes needed to encode the Latin lowercase characters.

using System;
using System.Text;

public class Example
{
   public static void Main()
   {
      int uppercaseStart = 0x0041;
      int uppercaseEnd = 0x005a;
      int lowercaseStart = 0x0061;
      int lowercaseEnd = 0x007a;
      // Instantiate a UTF8 encoding object with BOM support.
      Encoding utf8 = new UTF8Encoding(true);

      // Populate array with characters.
      char[] chars = new char[lowercaseEnd - lowercaseStart + uppercaseEnd - uppercaseStart + 2];
      int index = 0;
      for (int ctr = uppercaseStart; ctr <= uppercaseEnd; ctr++) {
         chars[index] = (char)ctr;
         index++;
      }
      for (int ctr = lowercaseStart; ctr <= lowercaseEnd; ctr++) {
         chars[index] = (char)ctr;
         index++;
      }

      // Display the bytes needed for the lowercase characters.
      Console.WriteLine("Bytes needed for lowercase Latin characters:");
      Console.WriteLine("   Maximum:         {0,5:N0}",
                        utf8.GetMaxByteCount(lowercaseEnd - lowercaseStart + 1));
      Console.WriteLine("   Actual:          {0,5:N0}",
                        utf8.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
                                          lowercaseEnd - lowercaseStart + 1));
      Console.WriteLine("   Actual with BOM: {0,5:N0}",
                        utf8.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
                                          lowercaseEnd - lowercaseStart + 1) +
                                          utf8.GetPreamble().Length);
   }
}
// The example displays the following output:
//       Bytes needed for lowercase Latin characters:
//          Maximum:            81
//          Actual:             26
//          Actual with BOM:    29
Imports System.Text

Module Example
   Public Sub Main()
      Dim uppercaseStart As Integer = &h0041
      Dim uppercaseEnd As Integer = &h005a
      Dim lowercaseStart As Integer = &h0061
      Dim lowercaseEnd As Integer = &h007a
      ' Instantiate a UTF8 encoding object with BOM support.
      Dim utf8 As New UTF8Encoding(True)
      
      ' Populate array with characters.
      Dim chars(lowercaseEnd - lowercaseStart + uppercaseEnd - uppercaseStart + 1) As Char
      Dim index As Integer = 0
      For ctr As Integer = uppercaseStart To uppercaseEnd
         chars(index) = ChrW(ctr)
         index += 1
      Next
      For ctr As Integer = lowercaseStart To lowercaseEnd
         chars(index) = ChrW(ctr)
         index += 1
      Next

      ' Display the bytes needed for the lowercase characters.
        Console.WriteLine("Bytes needed for lowercase Latin characters:")
        Console.WriteLine("   Maximum:         {0,5:N0}",
                          utf8.GetMaxByteCount(lowercaseEnd - lowercaseStart + 1))
        Console.WriteLine("   Actual:          {0,5:N0}",
                          utf8.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
                                            lowercaseEnd - lowercaseStart + 1))
        Console.WriteLine("   Actual with BOM: {0,5:N0}",
                          utf8.GetByteCount(chars, uppercaseEnd - uppercaseStart + 1,
                                            lowercaseEnd - lowercaseStart + 1) +
                                            utf8.GetPreamble().Length)
   End Sub
End Module
' The example displays the following output:
'       Bytes needed for lowercase Latin characters:
'          Maximum:            81
'          Actual:             26
'          Actual with BOM:    29

Comentarios

Para calcular el tamaño exacto de la matriz GetBytes que requiere para almacenar los bytes resultantes, se GetByteCount llama al método uses.To calculate the exact array size required by GetBytes to store the resulting bytes, you call the uses GetByteCount method. Para calcular el tamaño máximo de la matriz, llame GetMaxByteCount al método.To calculate the maximum array size, you call the GetMaxByteCount method. El GetByteCount método generalmente asigna menos memoria, mientras que el GetMaxByteCount método se ejecuta normalmente más rápido.The GetByteCount method generally allocates less memory, while the GetMaxByteCount method generally executes faster.

Con la detección de errores, una secuencia no válida hace que este ArgumentException método produzca una excepción.With error detection, an invalid sequence causes this method to throw an ArgumentException exception. Sin detección de errores, se omiten las secuencias no válidas y no se produce ninguna excepción.Without error detection, invalid sequences are ignored, and no exception is thrown.

Para asegurarse de que los bytes codificados se descodifican correctamente cuando se guardan como un archivo o como un flujo, puede prefijar un flujo de bytes codificados con un preámbulo.To ensure that the encoded bytes are decoded properly when they are saved as a file or as a stream, you can prefix a stream of encoded bytes with a preamble. Insertar el preámbulo al principio de una secuencia de bytes (como al principio de una serie de bytes que se va a escribir en un archivo) es responsabilidad del desarrollador y el número de bytes del preámbulo no se refleja en el valor devuelto por el GetByteCount método.Inserting the preamble at the beginning of a byte stream (such as at the beginning of a series of bytes to be written to a file) is the developer's responsibility, and the number of bytes in the preamble is not reflected in the value returned by the GetByteCount method.

Consulte también:

Se aplica a