without How do you convert a string to a byte array in.NET?
vb.net string to byte array without encoding (4)
I have a string that I need to convert to the equivalent array of bytes in .NET.
This ought to be easy, but I am having a brain cramp.
You need to use an encoding to tell .NET what you expect as the output. For example, in UTF-16:
var result = System.Text.Encoding.Unicode.GetBytes(text);
What Encoding are you using? Konrad's got it pretty much down, but there are others out there and you could get goofy results with the wrong one:
byte bytes = System.Text.Encoding.XXX.GetBytes(text)
XXX can be:
ASCII BigEndianUnicode Default Unicode UTF32 UTF7 UTF8
First work out which encoding you want: you need to know a bit about Unicode first.
Next work out which
System.Text.Encoding that corresponds to. My Core .NET refcard describes most of the common ones, and how to get an instance (e.g. by a static property of
Encoding or by calling a
Finally, work out whether you want all the bytes at once (which is the easiest way of working - call Encoding.GetBytes(string) once and you're done) or whether you need to break it into chunks - in which case you'll want to use Encoding.GetEncoder and then encode a bit at a time. The encoder takes care of keeping the state between calls, in case you need to break off half way through a character, for example.
string test = "text"; byte arr = Encoding.UTF8.GetBytes(test);