Burned Atmega328 with Arduino - serial com problem

I have burned a new 328 with an Arduino bootloader and successfully uploaded the blink sketch.
The problem is with the serial communication: if I upload the below sketch:

/*
 * Hello World!
 *
 * This is the Hello World! for Arduino. 
 * It shows how to send data to the computer
 */


void setup()                    // run once, when the sketch starts
{
  Serial.begin(9600);           // set up Serial library at 9600 bps
  
  Serial.println("Hello world!");  // prints hello with ending line break 
}

void loop()                       // run over and over again
{
                                  // do nothing!
}

I get this on the terminal:

˜~þž
ž`f˜˜€

setup for 9600 baud, but if I take it down to 4800 I get the proper string.
Do you know what can be the issue?
Thanks

I have burned a new 328 with an Arduino bootloader ...

How? Using the Arduino IDE? Using avrdude from a command shell?

Sorry for not being more specific. I burned using another Arduino as ISP programmer.

That probably means you have the fuses set incorrectly and are running from the 8mhz internal clock instead of the external crystal.

How to I set the fuses correctly?

I got it working by re-burning the bootloader. I had no problem with it until I wanted to use the serial communication, the sketches were uploaded ok and executed as they should. I guess I messed up the first time.
Thank you all for your replies.