Feedback

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

Veröffentlicht von am 27.05.2006
(5 Bewertungen)
Zwei Methoden mit denen man einen String in ein Byte Array und ein Bytearray in einen String wandeln kann.
Snippet in VB übersetzen
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 19.09.2006:
Lässt sich auch wunderbar für Char Array verwenden!
herbivore schrieb am 10.12.2006:
Unter Windows wird statt ASCIIEncoding meist Encoding.Default das sein, was man braucht/möchte/sucht.
Gregori schrieb am 27.06.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 27.07.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 04.04.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!