You've got the classic missing or offset nibble problem that is explained in many of the other threads that have a mention of 'weird characters' in their title.
You can tell by the identical incorrect characters where the 'l's (lower case L) belong. Bill can explain the probable reasons and recommend his library as a solution.
After carefully looking at the characters on the display vs what was being sent to the display, it appears that that nibble bits 2 & 3 in both nibbles of the character have been flipped.
I have no idea how the display could get into 4 bit mode if the arduino pin connections to DB6 and DB7 were flipped but the characters that show up appear to have nibble bits 2 and 3 flipped of both nibbles of the byte.
This would indicate a wiring issue with DB6 and DB7.
A photo of how things are wired up would be helpful.