Преобразование StringBuilder и байтов

У меня есть следующий код:

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

Но я получаю эту ошибку:

cannot convert from 'System.Text.StringBuilder' to 'char[]'
The best overloaded method match for 'System.Text.Encoding.GetBytes(char[])'
has some invalid arguments

Ответ 1

Следующий код исправит вашу проблему.

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

Проблема заключается в том, что вы передаете StringBuilder к GetBytes функции, когда вам нужно передавая результат строки из StringBuilder.

Ответ 2

GetBytes не принимает параметр StringBuilder в качестве параметра. Используйте строку с data.ToString()

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

Ответ 3

Пожалуйста, попробуйте это. StringBuilder - это объект.. оттуда вы должны получить строковое значение, как следует.

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

Ответ 4

попробуй это:

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

Ответ 5

ASCII не является хорошим выбором для текста в этом столетии. Веб-и мобильные приложения должны, по крайней мере, использовать UTF-8, а также любой другой тип приложения, который должен работать в условиях глобализации или в социальных сетях.

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