GSM GPRS A6

Why am I getting garbage output in serial monitor (Image attached)?
I am trying to send data to web server using GSM GPRS A6, but in doing so, I am getting garbage output in serial monitor.

Here is my code:

#include <SoftwareSerial.h>
SoftwareSerial myGsm(7,8);

void setup()
{
myGsm.begin(115200);
Serial.begin(9600);
delay(500);

myGsm.println("AT+CIPSHUT");
delay(1000);
printSerialData();

myGsm.println("AT+CIPMUX=0");
delay(2000);
printSerialData();

myGsm.println("AT+CGATT=1");
delay(1000);
printSerialData();

myGsm.println("AT+CSTT="internet","",""");//setting the APN,2nd parameter empty works for all networks
delay(5000);
printSerialData();

myGsm.println();
myGsm.println("AT+CIICR");
delay(6000);
printSerialData();

myGsm.println("AT+CIFSR"); //init the HTTP request
delay(2000);
printSerialData();

myGsm.println("AT+CIPSTART="TCP","159.203.180.107","80"");
delay(5000);
printSerialData();
delay(5000);

myGsm.println("AT+CIPSEND");
delay(2000);
printSerialData();
myGsm.println("Data Sent from GPRS GSM A6 Using Arduino!!!");
myGsm.write(0x1A); //0x1A

delay(3000);
myGsm.println("AT+CIPCLOSE");
printSerialData();

myGsm.println("AT+CIPSHUT");
delay(1000);
printSerialData();
}

void loop()
{
}

void printSerialData()
{
while(myGsm.available()!=0)
Serial.write(myGsm.read());
}

you are running the SoftwareSerial to the GSM modem at 115200 baud
I have found in practice that SoftwareSerial looses/corrupts information above 38400baud or 57600baud (depends on board)
also your Serial output is 9600 baud so would tend to loose information if the GSM is 115200baud if I/O buffers fill up - try the serial at 115200baud
I would recommend reducing the GSM baud rate or using an Arduino with serial hardware ports sush as the mega