Problem virtual keyboard with Arduino Micro

Hello guys, I open this topic because I have a problem with the virtual keyboard of the Arduino micro.
I can't get to write some special characters such as "#" or "@" ..

(I state that on my PC, the keyboard is set to the Italian language. But I also changed the keyboard language in English, with the same results)
I am attaching the code that I use to write with the virtual keyboard:

int delayTyping = 300;

void setup()
{
  Keyboard.begin();
}

void loop()
{
    delay(5000);

    //AltGr
    Keyboard.press(KEY_LEFT_CTRL);
    delay(delayTyping);
    Keyboard.press(KEY_LEFT_ALT);
    delay(delayTyping);
    
    //Key #
    Keyboard.press('à');
    delay(delayTyping);
    
    //Release
    Keyboard.releaseAll();
    delay(delayTyping);

    while(1);
}

Regarding the @ I have tried this code, but never writes what I want:
Often the result that comes out on the display is: "

//With print:
Keyboard.print("@");
Keyboard.print('@');
Keyboard.print(@);
Keyboard.print("64");
Keyboard.print('64');
Keyboard.print(64);
Keyboard.print("0x40");
Keyboard.print('0x40');
Keyboard.print(0x40);

//With write:
Keyboard.write("@");
Keyboard.write('@');
Keyboard.write(@);
Keyboard.write("64");
Keyboard.write('64');
Keyboard.write(64);
Keyboard.write("0x40");
Keyboard.write('0x40');
Keyboard.write(0x40);

How should I proceed?
Thanks a lot in advance

Have you tested it over other Arduino model? Such as Leonardo?

Eddyplay:
Have you tested it over other Arduino model? Such as Leonardo?

Unfortunately I don't have an Arduino Leonardo to try this out, I have only Arduino Micro.

Me too.
Does anybody who's reading, that own an arduino Leonardo, have the patient to test this small piece of code and post here the results?

One difference between a UK keyboard and a US Keyboard, is the keys for @ and " are swapped.
So a UK keyboard has " as a result for shift-2, and a US keyboard has @ for that combination.
Remember that you are registering or sending what key was pressed, not the value that is printed on that key.
So you are sending shift-2 and not @.
You need to do a different mapping per country version.

Google for images of "keyboard mapping", plus "UK" or "US" and you'll see the differences.

So your keyword here is "mapping".

Edit:
For sure you can send " to get @ instead, but that's not the right way to do this.

MAS3:
One difference between a UK keyboard and a US Keyboard, is the keys for @ and " are swapped.
So a UK keyboard has " as a result for shift-2, and a US keyboard has @ for that combination.
Remember that you are registering or sending what key was pressed, not the value that is printed on that key.
So you are sending shift-2 and not @.
You need to do a different mapping per country version.

Google for images of "keyboard mapping", plus "UK" or "US" and you'll see the differences.

So your keyword here is "mapping".

Edit:
For sure you can send " to get @ instead, but that's not the right way to do this.

Thank you very much, I set the keyboard language to English U.S. and now by pressing Shift+2, I get @!

But what is the correct way to get it?

This is a correct way.
You set the keyboard mapping of your OS corresponding to your (virtual) keyboard.
There's no problem with that.
You just need to instruct possible other users of your project to do the same thing: set keyboard input to a UK keyboard.

The incorrect way is to send an other character in order to get the one you'd like to see.