私は次のコードを持っています:
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 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を受け入れません。 data.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());