PDO error: Can't initialize character set utf8_general_ci

The error message is clear: there is no such charset. And never has been.

utf8_general_ci is a collation, while you need a character set here, which is called as just utf8 or, rather, nowadays it should be utf8mb4.

Let me recommend you my PDO tutorial which will help you to avoid a lot of confusions like this.