StringBuilder和字节转换

本文关键字:转换 字节 StringBuilder | 更新日期: 2023-09-27 18:22:07

我有以下代码:

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

StringBuilder和字节转换

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

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

问题是,当您需要从StringBuilder传递字符串结果时,您正在将StringBuilder传递给GetBytes函数。

GetBytes不接受StringBuilder作为参数。使用包含数据的字符串。ToString()
byte[] buffer = Encoding.ASCII.GetBytes(data.ToString()); 

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());

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

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

试试这个:

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