Feedback

C# - String in Byte Array und zurück wandeln

Veröffentlicht von am 5/27/2006
(6 Bewertungen)
Zwei Methoden mit denen man einen String in ein Byte Array und ein Bytearray in einen String wandeln kann.
private byte[] StringToByteArray(string str)
{
    System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
    return enc.GetBytes(str);
}

private string ByteArrayToString(byte[] arr)
{
    System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
    return enc.GetString(arr);
}
Abgelegt unter bytearray, ASCIIEncoding, string, byte, array.

5 Kommentare zum Snippet

Muphin schrieb am 9/19/2006:
Lässt sich auch wunderbar für Char Array verwenden!
herbivore schrieb am 12/10/2006:
Unter Windows wird statt ASCIIEncoding meist Encoding.Default das sein, was man braucht/möchte/sucht.
Gregori schrieb am 6/27/2007:
Bitte passt auf mit Encoding. Hier könnte es fix Probleme geben, da .NET UTF verwendet für Strings. Somit muss man immer wieder schauen was man hier macht.

Gruss,
Gregor
Reiskorn schrieb am 7/27/2010:
Zu Encodings sollte wirklich JEDER den Artikel lesen: "The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)"
http://www.joelonsoftware.com/articles/Unicode.html

ASCIIEncoding ist meistens nicht gut, weil ASCII keine Umlaute definiert. Besser ist, man weiß, wie sein byte[] kodiert ist und nimmt dann z.B.
System.Text.Encoding.GetEncoding(1252); (Windows, Latin1)
System.Text.Encoding.GetEncoding(437); (MS-DOS, DOS-Konsole)
System.Text.Encoding.UTF8; (Unicode UTF-8)

Merke: Ein String, von dem man nicht weiß, wie er kodiert ist, ist wertlos.
hackman schrieb am 4/4/2011:
statt immer ein neues encoding objekt zu nehmen, könnte man auch einfach nur System.Text.Encoding.ASCII oder ähnliches nehmen ...
 

Logge dich ein, um hier zu kommentieren!