Direkte String-zu-Byte-Array-Konvertierung in .NET
häufig müssen .NET -Entwickler Strings in Byte -Arrays umwandeln. Die Standard-UTF-16-Codierung in .NET kann beim Umgang mit Zeichenfolgen mit verschiedenen Zeichenkodierungen problematisch sein. In diesem Artikel wird eine Methode vorgestellt, um die Roh -Byte -Darstellung einer Zeichenfolge ohne explizite Codierung zu erhalten.
Byte -Darstellung ohne Codierung
Diese Technik kopiert die Zeichendaten der Zeichenfolge direkt in ein Byte -Array, wobei die Charaktercodierung umgeht:
<code class="language-csharp">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; }</code>
Da .NET-Zeichen 16-Bit-Unicode sind, ist die Größe des Byte-Arrays str.Length * sizeof(char)
(Zeichenanzahl multipliziert mit 2 Bytes pro Zeichen).
String -Rekonstruktion aus Bytes
Um die ursprüngliche Zeichenfolge nachzubilden:
<code class="language-csharp">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); }</code>
Dies spiegelt den Konvertierungsprozess wider, kopiert Bytes zurück in ein Zeichen -Array und erstellt eine Zeichenfolge.
Vorteile dieser Methode
Dieser Ansatz bietet mehrere wichtige Vorteile:
Das obige ist der detaillierte Inhalt vonWie kann ich Strings in .NET in .NET in Byte -Arrays konvertieren, ohne zu codieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!