Eigentlich handelt es sich bei den Escape-Sequenzen um ASCII-Steuerzeichen von 0 bis 31:
Bedeutung der ASCII-Zeichen von 0 bis 32 als Steuerzeichen für
Datenübertragung, Drucker, Bildschirmsteuerzeichen, usw.:
00 NULL, no Operation, NUL keine Operation
01 Start of Heading SOH Vorspannanfang
02 Start of Text STX Textanfang
03 End of Text ETX Textende
04 End of Transmission EOT Übertragungsende
05 Enquiry ENQ Stationsanruf
06 Acknowledge ACK Bestätigung
07 Bell BEL Klingel
08 Backspace BS Rückwärtsschritt
09 HT Horizontal Tabulation
10 Line Feed LF Zeilenvorschub
11 Vertical Tabulation VT
12 Form Feed FF Formularvorschub, Schirm l”schen
13 Carrige Return CR Wagenrücklauf
14 Shift out SO Umschalten aus
15 Shift in SI Umschalten ein
16 Data Link Escape DLE Austritt aus der Datenverbindung
17 Device Control 1 DC1 Gerätesteuerung 1
18 Device Control 2 DC2 Gerätesteuerung 2
19 Device Control 3 DC3 Gerätesteuerung 3
20 Device Control 4 DC4 Gerätesteuerung 4
21 Negative Acknowledge NAK Fehlermeldung
22 Synchronous Idle SYN Synchronisierung
23 End of Transm.Block ETB Datenblockende
24 Cancel CAN ungültig
25 End of Medium EM Datenträgerende
26 Substitute SUB Character Zeichen ersetzen
27 Escape ESC Rücksprung
28 File Separator FS Filetrennung
29 Group Separator GS Gruppentrennung
30 Record Separator RS Untergruppentrennung
31 Unit Separator US Einheitentrennung
32 Space SP Leerschritt
Bei meinem Linux-System werden die ANSI-Steuercodes automatisch verarbeitet. Wie das bei Windows aussieht, keinen Ahnung, da ich seit 2012 auf Linux umgestiegen bin.
Wenn ANSI nicht bei Windows arbeitet, dann interpretiert das Terminal diese Steuerzeichen als normalen Character:
Siehe mal hier:
https://www.dostips.com/forum/viewtopic.php?t=9144
und
https://hackage.haskell.org/package/ansi-terminal