ANSI output in Serial Monitor

hello i new in arduino and my english is not good but i will try my best to tell you. I dont know why but when i use a ANSI library with my esp32 board and upload a example in libary of this code to a board and see a serial monitor i think it not a correct output but i dont know why. can someone help me to fix it or it is normal output? (I will show output and code below)
This is a output in serial monitor
---------------------------------------

ANSI_LIB_VERSION: 0.3.5

Test invisible
e[8mINVISIBLE?
e[0mVISIBLE?

Test printMode
e[2Je[He[5iLorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui.
e[4i
Test printScreen
e[2Je[HHello World
e[idone

Test printLine
e[2Je[HHello 1
Hello 2
e[1iHello 3
Hello 4
done

done...

Test printMode
e[2Je[He[5iLorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui.
e[4i
Test printScreen
e[2Je[HHello World
e[idone

Test printLine
e[2Je[HHello 1
Hello 2
e[1iHello 3
Hello 4
done

done...

This is a code
---------------------------------------

#include "ansi.h"

ANSI ansi(&Serial);

char lorem[] = "Lorem ipsum dolor sit amet, \
consectetuer adipiscing elit. Aenean commodo ligula eget dolor. \
Aenean massa. Cum sociis natoque penatibus et magnis dis parturient \
montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, \
pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. \
Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. \
In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. \
Nullam dictum felis eu pede mollis pretium. Integer tincidunt. \
Cras dapibus. Vivamus elementum semper nisi. \
Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, \
consequat vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, \
viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus \
varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies \
nisi vel augue. Curabitur ullamcorper ultricies nisi. Nam eget dui.";



void setup()
{
  Serial.begin(115200);
  ansi.println();
  ansi.println(__FILE__);
  ansi.print("ANSI_LIB_VERSION: ");
  ansi.println(ANSI_LIB_VERSION);
  ansi.println();

  ansi.println("\nTest invisible");
  ansi.invisible();
  ansi.println("INVISIBLE?");
  ansi.normal();
  ansi.println("VISIBLE?");
  delay(1000);

  ansi.println("\nTest printMode");
  ansi.clearScreen();
  ansi.setPrintingMode(true);
  ansi.println(lorem);
  ansi.setPrintingMode(false);
  delay(1000);

  ansi.println("\nTest printScreen");
  ansi.clearScreen();
  ansi.println("Hello World");
  ansi.printScreen();
  ansi.println("done");
  delay(1000);

  ansi.println("\nTest printLine");
  ansi.clearScreen();
  ansi.println("Hello 1");
  ansi.println("Hello 2");
  ansi.printLine();
  ansi.println("Hello 3");
  ansi.println("Hello 4");
  ansi.println("done");
  delay(1000);


  ansi.println("\ndone...");
}


void loop()
{
}

Welcome to the forum

The Serial monitor of the IDE does not support ANSI control codes. If you want to use such codes then you can use an external terminal emulator

Examples of ANSI terminal programs (windows) are TERATERM or PUTTY.

Remember that not all ANSI terminals are created equal so it might that not all commands are supported. What platform / PC do you use? Windows Mac Linux other?

Version 0.3.5 is the latest, please have a look at ANSI/supportMatrix.md at master · RobTillaart/ANSI · GitHub
to see what commands are expect to work.

Now I see it... in another reference... ESC[2J erase entire screen

[disregard this...]
Perhaps I am not reading this right, referring to ansi.cpp... I thought the escape sequence on Vt52, VT100 and VT220 for:

  • "HOME" was ESC[H and
  • "CLRSCR" was ESC[J

... as opposed to CLRSCR in the file showing HOME, CLRSCR

//////////////////////////////////////////////////////
//
//  POSITION COMMANDS
//
void ANSI::clearScreen()
{
  _stream->write("\033[2J\033[H", 7);
}

void ANSI::clearLine(uint8_t clear)
{
  _stream->write("\033[", 2);
  print(clear);
  _stream->write('K');
}

void ANSI::home()
{
  _stream->write("\033[H", 3);
}

@xfpd

The ANSI codes are not VT100/52 etc. codes although they are close relatives.

ANSI codes were introduced to be terminal vendor independent (VT100 was not).
On the first PC's in the 80's you had to install a ANSI.sys driver to use these sequences.

Detailed description and history - ANSI escape code - Wikipedia