Bluetooth HC-05 odd characters and few other questions

I have a couple of questions regarding this. I searched a little, but didn't find something matched up.

I use Software Serial and connect to the computer using USB. The computer is Linux.

When I am in AT mode,
If I type in a command from the Arduino Serial Monitor, it would work like above (successfully change name, password), but the response is gibberish when I route that response back to the USB:

¯¥#á

However, when I connect at "data" mode, using a phone, sending data from the phone to the bluetooth, it routes successfully to the Arduino Serial Monitor, and I can read the text I sent from the phone successfully.

What do you think what causes the gibberish AT output?

The baud rate for data communication is 9600, for the AT mode is 38400

I also could not (or don't know) how to change the baud rate, I wonder what is the correct command to get it to work.
These didn't work (mess thing up until I get it back to 9600 ):
AT+UART_DEF=9600,8,1,0,0
AT+UART=115200,1,0

I also couldn't change the password to more than 4 characters.

Please help.

The sketch is from some tutorial:

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 11); // RX | TX

void setup()
{
pinMode(9, OUTPUT); // this pin will pull the HC-05 pin 34 (key pin) HIGH to switch module to AT mode
digitalWrite(9, HIGH);
Serial.begin(9600);
Serial.println("Enter AT commands:");
BTSerial.begin(9600); // HC-05 default speed in AT command mode: 38400, default data mode baud rate: 9600
}

void loop()
{

// Keep reading from HC-05 and send to Arduino Serial Monitor
if (BTSerial.available())
Serial.write(BTSerial.read());

// Keep reading from Arduino Serial Monitor and send to HC-05
if (Serial.available())
BTSerial.write(Serial.read());
}

I have an update, I just found it it also work with this baud rate:

AT+UART=19200,0,0

Anything higher than that, I got gibberish data from Bluetooth to the Arduino.
Do you think software serial can be causing that? Or the bluetooth module?

It looks like either the Bluetooth module. There was a post saying swapping to another module works. But it also could be because of the Software Serial can't go to a higher rate.

nam20nguyen:
I have an update, I just found it it also work with this baud rate:

AT+UART=19200,0,0

Anything higher than that, I got gibberish data from Bluetooth to the Arduino.
Do you think software serial can be causing that? Or the bluetooth module?

Yes, and you should studiously ignore whatever you heard in reply #2. The only thing wrong with your module was that you were running it too fast for software serial, and replacing with a new module won't fix that. What you want to do with Bluetooth is far from clear, but 38400 is the most you can reliably get from software serial. If you really need to use 115200, do it with hardware serial. If you are just using 115200 for the intellectual exercise, fine, but 9600 is usually adequate anyway.

Thank for the message. I have confirmed that with hardware serial, it works great up to 115200bps.