C# Hex в строку
Перевожу строку в Hex так:textBox3.Text = String.Concat(login.Select(x => ((int)x).ToString("x")));
А как можно обратно её перевести в текст? Подскажите пожалуйста.
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Вообще таких материалов в поиске много: 1, 2, 3. На русском языке наверное тоже, но я не искал.
Вот пример безопасного преобразования строки в обе стороны на базе консольного приложения
static void Main(string[] args)
{
string s = "Hello World!";
Console.WriteLine(s);
byte[] bytes = Encoding.UTF8.GetBytes(s);
string[] h = bytes.Select(x => x.ToString("x2")).ToArray();
string hex = string.Concat(h);
Console.WriteLine(hex);
string[] hexBytes = new string[hex.Length / 2];
for (int i = 0; i < hexBytes.Length; i++)
{
hexBytes[i] = hex.Substring(i * 2, 2);
}
byte[] resultBytes = hexBytes.Select(value => Convert.ToByte(value, 16)).ToArray();
string result = Encoding.UTF8.GetString(resultBytes);
Console.WriteLine(result);
Console.ReadKey();
}
Вывод в консоль
Hello World!
48656c6c6f20576f726c6421
Hello World!