Here is a sample Console app with two methods: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace HexConverter { class Program { static void Main(string[] args) { string test = "Holy Cow, Batman! We're surrounded by Indians!"; string result = ToHex(test); // Output: 486F6C7920436F772C204261746D616E2120576527726520737572726F756E64656420627920496E Console.WriteLine(result); string original = FromHex(result); Console.WriteLine(original ); // Output: Holy Cow, Batman! We're surrounded by Indians! Console.ReadKey(); } public static string ToHex( string stuff) { return BitConverter.ToString(System.Text.Encoding.UTF8.GetBytes(stuff)).Replace("-", String.Empty); } public static string FromHex(string hex) { return System.Text.Encoding.UTF8.GetString(Enumerable.Range(0, hex.Length).Where(x => 0 == x % 2).Select(x => Convert.ToByte(hex.Substring(x, 2), 16)).ToArray()); } } }