Преобразование 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());