c# - online - string to byte python




Conversione da stringa a serie di byte in C# (6)

Il seguente approccio funzionerà solo se i caratteri sono 1 byte. (Unicode predefinito non funzionerà poiché è 2 byte)

public static byte[] ToByteArray(string value)
{            
    char[] charArr = value.ToCharArray();
    byte[] bytes = new byte[charArr.Length];
    for (int i = 0; i < charArr.Length; i++)
    {
        byte current = Convert.ToByte(charArr[i]);
        bytes[i] = current;
    }

    return bytes;
}

Mantenerlo semplice

Sono abbastanza nuovo di C #. Sto convertendo qualcosa da VB in C #. Avere un problema con la sintassi di questa affermazione:

if ((searchResult.Properties["user"].Count > 0))
{
    profile.User = System.Text.Encoding.UTF8.GetString(searchResult.Properties["user"][0]);
}

Vedo quindi i seguenti errori:

Argomento 1: impossibile convertire da 'oggetto' a 'byte []'

La migliore corrispondenza del metodo sovraccarico per "System.Text.Encoding.GetString (byte [])" ha alcuni argomenti non validi

Ho provato a risolvere il codice basato su this post, ma ancora senza successo

string User = Encoding.UTF8.GetString("user", 0);

Eventuali suggerimenti?


Inoltre, è possibile utilizzare un metodo di estensione per aggiungere un metodo al tipo di string come indicato di seguito:

static class Helper
{
   public static byte[] ToByteArray(this string str)
   {
      return System.Text.Encoding.ASCII.GetBytes(str);
   }
}

E usalo come di seguito:

string foo = "bla bla";
byte[] result = foo.ToByteArray();

Qualcuno vede qualche motivo per non farlo?

mystring.Select(Convert.ToByte).ToArray()

Se si dispone già di un array di byte, sarà necessario sapere quale tipo di codifica è stato utilizzato per trasformarlo in tale array di byte.

Ad esempio, se l'array di byte è stato creato in questo modo:

byte[] bytes = Encoding.ASCII.GetBytes(someString);

Dovrai tornare indietro in una stringa come questa:

string someString = Encoding.ASCII.GetString(bytes);

Se riesci a trovare nel codice che hai ereditato, la codifica utilizzata per creare l'array di byte dovrebbe essere impostata.


Usa questo

byte[] myByte= System.Text.ASCIIEncoding.Default.GetBytes(myString);

static byte[] GetBytes(string str)
{
     byte[] bytes = new byte[str.Length * sizeof(char)];
     System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
     return bytes;
}

static string GetString(byte[] bytes)
{
     char[] chars = new char[bytes.Length / sizeof(char)];
     System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
     return new string(chars);
}




byte