Conversion StringBuilder et byte

j'ai le code suivant:

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

Mais j'obtiens cette erreur:

cannot convert from 'System.Text.StringBuilder' to 'char[]'
The best overloaded method match for 'System.Text.Encoding.GetBytes(char[])'
has some invalid arguments
20
demandé sur Lee Taylor 2012-02-02 07:41:09

5 réponses

le code suivant corrigera votre problème.

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

le problème est que vous passez un StringBuilderGetBytes fonction lorsque vous avez besoin de passer la chaîne à partir de la StringBuilder.

31
répondu Scott Smith 2012-02-02 05:18:47

GetBytes n'accepte pas un éditeur de texte comme paramètre. Utiliser une chaîne de caractères avec des données.ToString ()

byte[] buffer = Encoding.ASCII.GetBytes(data.ToString()); 
12
répondu roken 2012-02-02 03:44:25

s'il vous Plaît essayer cette. StringBuilder est objet.. de là, vous devez obtenir la valeur de chaîne de caractères comme suit.

byte[] buffer = Encoding.ASCII.GetBytes(data.ToString());
4
répondu Thit Lwin Oo 2012-02-02 03:44:56

essaye ceci:

byte[] buffer = Encoding.ASCII.GetBytes(data.ToString().ToCharArray());
3
répondu Allen Xia 2012-02-02 03:43:55

ASCII n'est pas un bon choix d'encodage pour le texte de ce siècle. Les applications web et mobiles devraient au moins utiliser L'UTF-8, et tout autre type d'application qui est censé fonctionner dans un environnement d'affaires ou de réseautage social mondialisé devrait aussi.

StringBuilder builder = new StringBuilder();
for (int i = 0; i < iLength; ++ i)
    builder.Append("a");
byte[] bytesFromBuilder = Encoding.UTF8.GetBytes(builder.ToString());
2
répondu FauChristian 2017-04-17 01:05:38