Frage

Ich habe eine Zeichenfolge, die ich in der entsprechenden Array von Bytes in .NET konvertieren muß.

Dies sollte einfach sein, aber ich bin ein Gehirn Krampf hat.

War es hilfreich?

Lösung

Sie benötigen eine Codierung (System.Text.Encoding) verwenden .NET zu sagen, was Sie als Ausgabe erwarten. Zum Beispiel in UTF-16 (= System.Text.Encoding.Unicode) :

var result = System.Text.Encoding.Unicode.GetBytes(text);

Andere Tipps

Zuerst arbeiten heraus, welche kodieren Sie wollen: Sie ein bisschen über Unicode wissen müssen erst.

Als nächstes arbeiten heraus, welche System.Text.Encoding das entspricht . Meine Core-NET refcard meisten von den allgemeinen beschreibt, und wie eine Instanz zu erhalten (zB durch eine statische Eigenschaft von Encoding oder durch ein Encoding.GetEncoding .

Schließlich herausarbeiten, ob die Bytes auf einmal alle wollen (was die einfachste Art zu arbeiten ist - nennen Encoding.GetEncoder und dann ein wenig in einer Zeit, kodieren . Der Geber kümmert sich um den Zustand zwischen den Anrufen zu halten, für den Fall, müssen Sie auf halben Weg durch ein Zeichen abbrechen, zum Beispiel.

Welche Encoding verwenden Sie? Konrad hat es ziemlich nach unten, aber es gibt andere, da draußen, und du doof Ergebnisse mit der falschen bekommen konnte:

byte[] bytes = System.Text.Encoding.XXX.GetBytes(text)

Wo XXX können sein:

ASCII
BigEndianUnicode
Default
Unicode
UTF32
UTF7
UTF8

Wie folgt aus:

    string test = "text";
    byte[] arr = Encoding.UTF8.GetBytes(test);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top