LCD has strange characters when not lcd.clear() is sent

Mabey it is the type of display

That is really the only explanation since I know that the code is correct and we also know that your wiring is correct since most of the message is displayed correctly. Some of the bargain displays being sold are probably ones that don't quite meet the factory specs.

It looks like your display may be taking too long to complete the commands in the lcd.begin() function so it is missing the first letter sent to it by the lcd.print() function. You could stick a 10 mS delay in before the lcd.print() function and see if that helps.

Don