My keyboard is typing up pure gibberish and messing up the keys.

When I try to type a question mark, it comes out as , and I cannot type slash either, because it comes out as .

After further experimentation I realized the question mark has been moved to shift+6, and slash was moved to hyphen. The character above the number 6 was moved to the left brace bracket and will not come out unless there is another character typed after it.

The on screen keyboard is no help either, and types the wrong keys as well.

Some of the missing keys have been replaced by others, and can no longer be typed. This is getting really annoying and I am hoping someone can help me with this.