StringBuilder y el byte de conversión

Tengo el siguiente código:

StringBuilder data = new StringBuilder();
for (int i = 0; i < bytes1; i++)
{ 
    data.Append("a"); 
}
byte[] buffer = Encoding.ASCII.GetBytes(data);

Pero me sale este error:

cannot convert from 'System.Text.StringBuilder' to 'char[]'
The best overloaded method match for 'System.Text.Encoding.GetBytes(char[])'
has some invalid arguments
InformationsquelleAutor R.Vector | 2012-02-02

5 Kommentare

  1. 34

    El siguiente código va a solucionar su problema.

    StringBuilder data = new StringBuilder();
    for (int i = 0; i < bytes1; i++)
    { data.Append("a"); }
    byte[] buffer = Encoding.ASCII.GetBytes(data.ToString());

    El problema es que se pasa un StringBuilder a la GetBytes función cuando usted necesita para pasar la cadena de resultado de la StringBuilder.

  2. 12

    GetBytes no acepta un StringBuilder como un parámetro. Utilizar una cadena con los datos.ToString()

    byte[] buffer = Encoding.ASCII.GetBytes(data.ToString()); 
  3. 4

    Por favor, intente esto. StringBuilder es objeto.. a partir de ahí, usted tiene que obtener el valor de cadena como seguir.

    byte[] buffer = Encoding.ASCII.GetBytes(data.ToString());
  4. 4

    ASCII no es una buena codificación de elección en el texto de este siglo. Aplicaciones Web y móviles debe ser de al menos el uso de UTF-8, y cualquier otro tipo de aplicación que se supone que funciona en un mundo globalizado de los negocios de redes sociales o el medio ambiente, deberían también.

    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < iLength; ++ i)
        builder.Append("a");
    byte[] bytesFromBuilder = Encoding.UTF8.GetBytes(builder.ToString());
  5. 3

    intente esto:

    byte[] buffer = Encoding.ASCII.GetBytes(data.ToString().ToCharArray());
    • No hay necesidad de convertir explícitamente la cadena a un array, GetBytes() acepta una cadena.
    • gracias @roken, tienes razón

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea