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
5 ответов
следующий код исправит вашу проблему.
StringBuilder data = new StringBuilder();
for (int i = 0; i < bytes1; i++)
{ data.Append("a"); }
byte[] buffer = Encoding.ASCII.GetBytes(data.ToString());
проблема в том, что вы проходите StringBuilder
до GetBytes
функция, когда вам нужно передать результат строки из StringBuilder
.
GetBytes не принимает StringBuilder в качестве параметра. Используйте строку с данными.ToString ()
byte[] buffer = Encoding.ASCII.GetBytes(data.ToString());
пожалуйста, попробуйте это. То StringBuilder объекта.. оттуда вы должны получить строковое значение следующим образом.
byte[] buffer = Encoding.ASCII.GetBytes(data.ToString());
ASCII не является хорошим выбором кодировки для текста в этом веке. Веб-и мобильные приложения должны, по крайней мере, использовать UTF-8, а также любой другой тип приложений, который должен работать в глобализованной бизнес-среде или социальной сети.
StringBuilder builder = new StringBuilder();
for (int i = 0; i < iLength; ++ i)
builder.Append("a");
byte[] bytesFromBuilder = Encoding.UTF8.GetBytes(builder.ToString());