0

I have this UTF-8

0x50 0x6C 0x61 0x6E 0x74 0x09 0x20 0x3A 0x20 0x54 0x45 0x53 0x54 0x31 0x0A 0x47 0x72 0x6F 0x75 0x70 0x09 0x20 0x3A 0x20 0x54 0x45 0x53 0x54 0x32 0x0A 0x50 0x61 0x6E 0x65 0x6C 0x20 0x54 0x6F 0x67 0x20 0x4E 0x75 0x6D 0x62 0x65 0x72 0x20 0x3A 0x20 0x54 0x45 0x53 0x54 0x33 0x0A 0x43 0x6F 0x6F 0x72 0x64 0x69 0x6E 0x61 0x74 0x69 0x6F 0x6E 0x09 0x20 0x3A 0x20 0x54 0x45 0x53 0x54 0x34

but it's a string not byte I cant use

byte[] bytes = Encoding.Default.GetBytes(str2);
string str3 = Encoding.UTF8.GetString(bytes);

because it's a string not UTF-8 at first

1
  • You will need to convert hex string to bytes first. Commented Jun 15, 2020 at 5:59

1 Answer 1

3

Split, byte.Parse or Convert.ToByte, Encoding.UTF8.GetString

var input = "0x50 0x6C 0x61 0x6E 0x74 0x09 0x20 0x3A 0x20 0x54 0x45 0x53 0x54 0x31 0x0A 0x47 0x72 0x6F 0x75 0x70 0x09 0x20 0x3A 0x20 0x54 0x45 0x53 0x54 0x32 0x0A 0x50 0x61 0x6E 0x65 0x6C 0x20 0x54 0x6F 0x67 0x20 0x4E 0x75 0x6D 0x62 0x65 0x72 0x20 0x3A 0x20 0x54 0x45 0x53 0x54 0x33 0x0A 0x43 0x6F 0x6F 0x72 0x64 0x69 0x6E 0x61 0x74 0x69 0x6F 0x6E 0x09 0x20 0x3A 0x20 0x54 0x45 0x53 0x54 0x34";

var bytes = input
   .Split(' ')
   .Select(x => byte.Parse(x.Substring(2), NumberStyles.HexNumber))
   .ToArray();

// or

var bytes = input
   .Split(' ')
   .Select(x => Convert.ToByte(x, 16))
   .ToArray();


Console.WriteLine(Encoding.UTF8.GetString(bytes));

Output

Plant    : TEST1
Group    : TEST2
Panel Tog Number : TEST3
Coordination     : TEST4
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.