Ваши выходные данные - это действительные байты, а не символы, которые представляют их для англоговорящих людей (и многих других языков, но не для всех).
Символы, которые вы бы написали, являются некоторыми элементами управления в основномисторический интерес, хотя ANPA-1312 по-прежнему используется Associated Press и использует их:
НАЧАЛО ТЕКСТА Предшествует фактическому тексту сообщения.(0x01, то, что вы пропустили, является началом заголовка.
END OF TEXT Конец текста. Кроме того, Ctrl + C для завершения работающей программы DOS - это элемент управления.
END OFTRANSMISSION Goodbye. Используется как символ выхода из системы.
ЗАПРОС Вы все еще там?
В вашем массиве для печати также есть:
NULL (ноль, не чтоnull
означает в C #): используется в некоторых форматах для представления конца строки, «конца значимого текста» и т. Д.
ЗАПУСК ГОЛОВКИ: упомянуто выше.
ACKNOWLEDGE ДаЯ здесь. Также используется при встряхивании TCP / IP.
BELL Есть еще принтеры, которые будут работать, если вы отправите им это.
BACKSPACE Printing u
затем backspace тогда ¨
был один раз, как вы написали бы ü
. Помните, что если Unicode кажется более сложным, чем ASCII. На самом деле проще просто иметь ü
. Также назад и X и назад и X и назад и Xбыл старый "удалить"!
CHARACTER TAB первый из этих символовчто вы, вероятно, когда-либо будете использовать в современном коде, который не очень низкого уровня.Символ «табуляция».Конечно, сам по себе он не выглядит много.
Что вы, возможно, хотели, чтобы вывести символы, '0'
, '1'
и т. Д.
Вы могли бы:
Кодировать их вручную.'0'
- это 0x30, '1'
- это 0x31.Это одна из тех вещей, где вы должны знать, как это сделать, но на самом деле не должны делать это сами 99% времени.
Используйте текстовый редактор.Он принимает значения разных типов и (необязательно с определенными правилами форматирования) выводит текст, который их представляет.Следовательно,
using(FileStream file_out = new FileStream(@"C:\fileout.txt", FileMode.Create)
using(TextWriter tw = new StreamWriter(file_out))
for(int i = 2; i != 6; ++i)
tw.Write(bArray[i]);
Это преобразует байты в их понятный человеку эквивалент по ходу и довольно эффективно.Это так же, как если бы вы выводили 0x32, 0x33, 0x34, 0x35, что будет выглядеть как «2345» при открытии в блокноте.
В большинстве случаев вы захотите писать байты напрямую, если вы получаете их отгде-то еще (например, создание или получение потока изображения откуда-то) или выполнение чего-то очень низкого уровня.