StringBuilder和字节转换

R.V*_*tor 23 c# stringbuilder encoding byte

我有以下代码:

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

但我得到这个错误:

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

Sco*_*ith 34

以下代码将解决您的问题.

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

问题是,你是一个合格StringBuilderGetBytes功能,当你需要从传递字符串结果StringBuilder.


rok*_*ken 12

GetBytes不接受StringBuilder作为参数.使用带有data.ToString()的字符串

byte[] buffer = Encoding.ASCII.GetBytes(data.ToString()); 
Run Code Online (Sandbox Code Playgroud)


Dou*_*eco 9

对于本世纪的文本来说,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());
Run Code Online (Sandbox Code Playgroud)


Thi*_* Oo 6

请尝试这个。StringBuilder 是对象..从那里,您必须获取字符串值,如下所示。

byte[] buffer = Encoding.ASCII.GetBytes(data.ToString());
Run Code Online (Sandbox Code Playgroud)