2012-05-01 2 views
3

Я ищу метод, который вернет строковое представление байтовых данных так же, как и шестнадцатеричный редактор. Он должен иметь один параметр, который является byte[] и возвращает string вроде следующего: Like it should beПреобразование данных байта в вывод строки, как в шестнадцатеричном редакторе

Этот метод должен обрабатывать управляющие символы, аннулирует и выровнять текст правильно. Я хочу использовать его в Debug.WriteLine(). Пожалуйста, помогите мне с этим! Благодаря!

Обновление: Хорошо. Спасибо всем, ребята. Вот ссылка на готовый к употреблению раствор http://illegalargumentexception.blogspot.fr/2008/04/c-file-hex-dump-application.html по Дарин Димитров

+0

Я думаю, что вам нужно прояснить немного. У вас есть два ответа, которые, хотя правильны, отвечают на разные вопросы. Вы пытаетесь получить шестнадцатеричный или Обычный текст из байта []? И то и другое? – vcsjones

+0

@vcsjones 'строковое представление байтовых данных'. myne анализирует байт и возвращает строку. –

ответ

2

Вы можете использовать ToString метод:

public static string ToString(byte[] buffer) 
{ 
    return BitConverter.ToString(buffer); 
} 
+0

Да, но мне нужно представление ASCII после каждых 16 байтов. 41 41 41 41 41 41 41 41 41 41 41 00 41 41 41 41 41 AAAAAAAAAAA.AAAA 59 59 59 00 59 59 59 59 59 59 59 59 59 59 53 59 YYY.YYYYYYYYYYSY –

+0

Попробуйте следующее: http: /illegalargumentexception.blogspot.fr/2008/04/c-file-hex-dump-application.html –

+0

@DarinDimitrov - это ваш блог? –

1

попробовать это:

byte[] b1 = ... 

    string h = System.Text.Encoding.UTF8.GetString(b1); 
+0

Это не то, что нужно. Он вернет только одну простую строку, в которой все байты будут преобразованы в представление символа. Пример: «\ r \ 0 \ a (C \ a9 s p T? mK 9 y ΪM |» –

+0

@NazarGrynko попробуйте с ASCII. Эта команда должна вернуть строку представление байта. попробуйте с System.Text.Encoding.ASCII.GetString (b1) ;. –

+0

@NazarGrynko изменить на * ASCII * –