At this point most people will be thinking \"Ah ill post this..:\"
byte[] dataB= System.Text.Encoding.ASCII.GetBytes(data);
However.. the p
However.. the problem I have is i need the exact value of the bytes with no encoding just the pure value for each byte.
Then use this:
byte[] dataB = System.Text.Encoding.Unicode.GetBytes(data);
It returns the bytes as stored internally by .NET strings.
But all this is codswallop: A string is always linked to a particular encoding and there's no way around it. The above will fail e.g. if the file contains invalid Unicode code sequences (which may happen) or through normalization. Since you obviously don't want a string
, don't read one. Read the file as binary data instead.
//convert a string to a byte array
public static byte[] StrToByteArray(string str)
{
System.Text.UTF8Encoding encoding=new System.Text.UTF8Encoding();
return encoding.GetBytes(str);
}
//convert a byte array to a string
public string ByteArrayToStr(byte [] dBytes)
{
System.Text.UTF8Encoding enc = new System.Text.UTF8Encoding();
return enc.GetString(dBytes);
}
The problem is with your approach to start with:
I need the exact value of the bytes with no encoding
...
For example if the value of the string is (0xFF32)
That's a bit like looking at an oil painting and saying, "I want the bytes for that picture, with no encoding." It doesn't make sense. Text isn't the same as binary data. Once you understand that, it's easy to get to the root of the problem. What you really want is the contents of a file as a byte array. That's easy, because files are binary data! You shouldn't be reading it as text in the first place if it isn't really text. Fortunately, .NET makes this really easy:
byte[] fileC = File.ReadAllBytes(dialog.FileName);
Why convert from string at all? Couldn't you just read the contents of the file directly into bytes?
byte[] fileC = File.ReadAllBytes(dialog.FileName);
If you want bytes, use a Stream!
Why on earth are you messing with a TextReader?
EDIT:
As per your example, you are opening a file, so just use a FileStream.
Use a BinaryReader.