public static void Main()
StringExtensions.StringDecode("");
public static class StringExtensions
public static string StringDecode(this string toDecode)
var decodedString = toDecode;
if (string.IsNullOrEmpty(toDecode) || (toDecode.StartsWith("F") && toDecode.Contains("C")))
return !string.IsNullOrEmpty(toDecode) ? toDecode.Trim() : toDecode;
bool isAllDigits = !toDecode.Trim().Any(ch => ch < '0' || ch > '9');
decodedString = toDecode.Trim();
decodedString = ConvertHexToString(decodedString, Encoding.UTF8);
public static string StringEncode(this string toEncode)
if (string.IsNullOrEmpty(toEncode) || (toEncode.StartsWith("F") && toEncode.Contains("C")))
return !string.IsNullOrEmpty(toEncode) ? toEncode.Trim() : toEncode;
var sanitizedString = toEncode;
bool isAllDigits = !toEncode.Trim().Any(ch => ch < '0' || ch > '9');
sanitizedString = toEncode.Trim();
sanitizedString = ConvertStringToHex(toEncode, Encoding.UTF8);
private static string ConvertStringToHex(string input, System.Text.Encoding encoding)
var stringBytes = encoding.GetBytes(input);
var sbBytes = new StringBuilder(stringBytes.Length * 2);
foreach (byte b in stringBytes)
sbBytes.AppendFormat("{0:X2}", b);
return sbBytes.ToString();
public static string ConvertHexToString(string hexInput, Encoding encoding)
int numberChars = hexInput.Length;
byte[] bytes = new byte[numberChars / 2];
for (int i = 0; i < numberChars; i += 2)
bytes[i / 2] = Convert.ToByte(hexInput.Substring(i, 2), 16);
return encoding.GetString(bytes);