Ich habe eine Zeichenfolge, die ich in das entsprechende Array von Bytes in .NET konvertieren muss.
Das sollte einfach sein, aber ich habe einen Gehirnkrampf.
Sie müssen eine encoding ( System.Text.Encoding
) verwenden, um .NET mitzuteilen, was Sie als Ausgabe erwarten. Zum Beispiel in UTF-16 (= System.Text.Encoding.Unicode
) :
var result = System.Text.Encoding.Unicode.GetBytes(text);
Ermitteln Sie zunächst, welche Codierung Sie möchten: Sie müssen zuerst etwas über Unicode wissen .
Als nächstes herausfinden, was
System.Text.Encoding
das entspricht. Meine Core .NET-Refcard beschreibt die meisten gängigen und wie eine Instanz abgerufen wird (z. B. durch eine statische Eigenschaft vonEncoding
oder durch Aufrufen von aEncoding.GetEncoding
.Stellen Sie abschließend fest, ob Sie alle Bytes auf einmal möchten (was die einfachste Arbeitsweise ist - rufen Sie Encoding.GetBytes (Zeichenfolge) einmal auf und Sie sind fertig) oder ob Sie es in Blöcke aufteilen müssen - in diesem Fall ' Ich möchte Encoding.GetEncoder verwenden und dann jeweils ein Bit codieren. Der Encoder sorgt dafür, dass der Status zwischen den Aufrufen erhalten bleibt, falls Sie beispielsweise die Hälfte eines Zeichens abbrechen müssen.
quelle
Buffer.BlockCopy
und anzunehmen, dass es das ist, was sie wollen.Welche Codierung verwenden Sie? Konrad hat es ziemlich schlecht gemacht, aber es gibt andere da draußen und Sie könnten mit dem falschen doofe Ergebnisse erzielen:
byte[] bytes = System.Text.Encoding.XXX.GetBytes(text)
Wo
XXX
kann sein:ASCII BigEndianUnicode Default Unicode UTF32 UTF7 UTF8
quelle
So was:
string test = "text"; byte[] arr = Encoding.UTF8.GetBytes(test);
quelle