我有以下代码:
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
答案 0 :(得分:32)
以下代码将解决您的问题。
StringBuilder data = new StringBuilder();
for (int i = 0; i < bytes1; i++)
{ data.Append("a"); }
byte[] buffer = Encoding.ASCII.GetBytes(data.ToString());
问题是,当您需要从StringBuilder
传递字符串结果时,您正在将GetBytes
传递给StringBuilder
函数。
答案 1 :(得分:12)
GetBytes不接受StringBuilder作为参数。使用带有data.ToString()
的字符串byte[] buffer = Encoding.ASCII.GetBytes(data.ToString());
答案 2 :(得分:4)
请试试这个。 StringBuilder是对象..从那里,你必须得到如下的字符串值。
byte[] buffer = Encoding.ASCII.GetBytes(data.ToString());
答案 3 :(得分:3)
试试这个:
byte[] buffer = Encoding.ASCII.GetBytes(data.ToString().ToCharArray());
答案 4 :(得分:3)
本世纪的ASCII不是文本的良好编码选择。 Web和移动应用程序至少应该使用UTF-8,并且应该在全球化业务或社交网络环境中工作的任何其他类型的应用程序也应该。
StringBuilder builder = new StringBuilder();
for (int i = 0; i < iLength; ++ i)
builder.Append("a");
byte[] bytesFromBuilder = Encoding.UTF8.GetBytes(builder.ToString());