2014-12-22 2 views
0

Возможно ли прочитать шестнадцатеричные значения файла в C# и вывести соответствующий ASCII? Я могу просмотреть файл в шестнадцатеричном редакторе, который затем я смогу увидеть соответствующий ASCII рядом с шестнадцатеричным, а не вручную копировать нужные мне части. Я предполагаю, что машина делает это для меня в программе C#?Открыть файл, прочитать как hex и преобразовать его в ASCII?

Я нашел Converting HEX data in a file to ascii, но это действительно не помогло?

+0

Да, это возможно. Ответ, который вы нашли для C++ –

+0

, вы прошли через это - http://msdn.microsoft.com/en-us/library/bb311038.aspx –

+3

Вы уверены, что файл в шестнадцатеричном формате? «Hex editor» обычно представляет собой редактор байтов, который показывает значения байтов как hex и ASCII. – Guffa

ответ

4

Похоже, вам просто нужно:

string text = File.ReadAllText("file.txt"); 

Там нет такого понятия, как «шестнадцатеричных значения» в файле - они просто байты, которые отображаются в шестнадцатеричном виде в различных редакторах, ориентированных на редактирование не-текста файлы.

Вышеупомянутая строка кода загрузит текстовый файл, декодирует его как UTF-8, который совместим с ASCII, поэтому, если ваш файл действительно ASCII, все должно быть хорошо. Если вам нужно указать другую кодировку, вы можете сделать это с перегрузкой, например.

// Load an ISO-8859-1 file 
string text = File.ReadAllText("file.txt", Encoding.GetEncoding(28591)); 
+1

Я дам этот снимок, интересный, что вы говорите о «шестнадцатеричных значениях», по существу, просто байтах. – Apqu

+0

А это, безусловно, большая помощь, у меня есть данные, которые мне нужны как ASCII, просто нужно как-то удалить все «NULL» байты, и это отлично :-) Серьёзное спасибо за помощь :-) – Apqu

+0

@Tur: Почему на вашем входе есть те байты, с которых нужно начинать? Это * подлинно * текстовый файл? –

Смежные вопросы