Encoding can be a frustrating experience for a coder who is just looking for byte representation of strings. If you are using C#, and thinking of how to get a consistent byte representation from the string without the help of the encoder, you have come to the right place.
Warning: The below method works if you intend to execute the program only on your system. The reason is endianness, which affects the conversion of strings to bytes.
To get started, let’s look at the code below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
static byte[] GetTheBytes(string str) { byte[] TheBytes= new byte[str.Length * sizeof(char)]; System.Buffer.BlockCopy(str.ToCharArray(), 0, TheBytes, 0, TheBytes.Length); return TheBytes; } static string GetString(byte[] bytes) { char[] TheChars= new char[bytes.Length / sizeof(char)]; System.Buffer.BlockCopy(bytes, 0, TheChars, 0, TheChars.Length); return new string(TheChars); } |
We have two methods to examine in the above examples. The first method, GetTheBytes, generates the bytes from the string, whereas the GetString method generates the string from the bytes, all without the help of encoding.
It is advisable to use the above-mentioned method if you know what you are doing. .NET has its own classes to handle the encoding, but it does include using some encoding. Using encoding should be your number one choice as it gives you portability and doesn’t require much knowledge of how encoding works.
To learn more about encoding you can read more about encoding text here.
Let’s go through the code to get a better understanding.
1 2 3 |
const string data = "international characters: Hindi: नमस्ते, Mongolian: Сайн уу"; var encoded= System.Text.Encoding.UTF8.GetBytes(data); var decoded_done = System.Text.Encoding.UTF8.GetString(bytes); |
Hope, your question is now answered. If you still have some queries into how to use byte to string encoding and decoding, don’t forget to ask in the comments section below.
You can also check on our website videos about C#. Below are some examples:
You can also check out these broadcasters and follow them for more C# content.
Another cool way to find out interesting things about C# is to access our project page!