57 "NUL",
"SOH",
"STX",
"ETX",
"EOT",
"ENQ",
"ACK",
"BEL",
"BS",
"HT",
"LF",
"VT",
"FF",
"CR",
"SO",
"SI",
58 "DLE",
"DC1",
"DC2",
"DC3",
"DC4",
"NAK",
"SYN",
"ETB",
"CAN",
"EM",
"SUB",
"ESC",
"FS",
"GS",
"RS",
"US",
59 " ",
"!",
"\"",
"#",
"$",
"%",
"&",
"'",
"(",
")",
"*",
"+",
",",
"-",
".",
"/",
60 "0",
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
":",
";",
"<",
"=",
">",
"?",
61 "@",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
62 "P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"[",
"\\",
"]",
"^",
"_",
63 "`",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
64 "p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"{",
"|",
"}",
"~",
"DEL"
77 "control: null",
"control: start of heading",
"control: start of text",
"control: end of text",
78 "control: end of transmission",
"control: enquiry",
"control: acknowledge",
"control: bell",
79 "control: backspace",
"control: horizontal tab",
"control: NL line feed, new line",
80 "control: vertical tab",
"control: NP form feed, new page",
"control: carriage return",
81 "control: shift out",
"control: shift in",
"control: data link escape",
82 "control: device control 1",
"control: device control 2",
"control: device control 3",
83 "control: device control 4",
"control: negative acknowledge",
"control: synchronous idle",
84 "control: end of trans. block",
"control: cancel",
"control: end of medium",
85 "control: substitute",
"control: escape",
"control: file separator",
86 "control: group separator",
"control: record separator",
"control: unit separator",
87 "symbol: space",
"symbol: exclamation mark",
"symbol: double quotation mark",
88 "symbol: number sign, pound",
"symbol: dollar sign",
"symbol: percent sign",
89 "symbol: ampersand",
"symbol: apostrophe, single quote mark",
"symbol: left parenthesis",
90 "symbol: right parenthesis",
"symbol: asterisk",
"symbol: plus sign",
"symbol: comma",
91 "symbol: minus sign, hyphen",
"symbol: period, decimal point, full stop",
92 "symbol: slash, virgule, solidus",
93 "digit: 0",
"digit: 1",
"digit: 2",
"digit: 3",
"digit: 4",
94 "digit: 5",
"digit: 6",
"digit: 7",
"digit: 8",
"digit: 9",
95 "symbol: colon",
"symbol: semicolon",
"symbol: less-than sign",
"symbol: equal sign",
96 "symbol: greater-than sign",
"symbol: question mark",
"symbol: commercial at sign",
97 "letter: capital A",
"letter: capital B",
"letter: capital C",
"letter: capital D",
98 "letter: capital E",
"letter: capital F",
"letter: capital G",
"letter: capital H",
99 "letter: capital I",
"letter: capital J",
"letter: capital K",
"letter: capital L",
100 "letter: capital M",
"letter: capital N",
"letter: capital O",
"letter: capital P",
101 "letter: capital Q",
"letter: capital R",
"letter: capital S",
"letter: capital T",
102 "letter: capital U",
"letter: capital V",
"letter: capital W",
"letter: capital X",
103 "letter: capital Y",
"letter: capital Z",
104 "symbol: left square bracket",
"symbol: backslash, reverse solidus",
105 "symbol: right square bracket",
"symbol: spacing circumflex accent, caret",
106 "symbol: spacing underscore, low line, horizontal bar",
107 "symbol: spacing grave accent, back apostrophe",
108 "letter: small a",
"letter: small b",
"letter: small c",
"letter: small d",
"letter: small e",
109 "letter: small f",
"letter: small g",
"letter: small h",
"letter: small i",
"letter: small j",
110 "letter: small k",
"letter: small l",
"letter: small m",
"letter: small n",
"letter: small o",
111 "letter: small p",
"letter: small q",
"letter: small r",
"letter: small s",
"letter: small t",
112 "letter: small u",
"letter: small v",
"letter: small w",
"letter: small x",
"letter: small y",
114 "symbol: left brace, left curly bracket",
"symbol: vertical bar",
115 "symbol: right brace, right curly bracket",
"symbol: tilde accent",
"control: delete"
123 return char_to_hex(
static_cast<unsigned char>( c ), full );
138 std::stringstream ss;
141 if( std::isprint(c) ) {
143 ss <<
"'" << std::string( 1, c ) <<
"'";
148 ss <<
"non-ASCII char";
153 ss << std::hex << std::uppercase << std::setw(2) << std::setfill('0') << static_cast<int>( c );