How to use Unicode chars on PHPMyAdmin?
Your UPDATE statement looks correct.  Here's "proof":

mysql&gt; SELECT HEX(REPLACE( " !", ' !',' !'));
+----------------------------------+
| HEX(REPLACE( " !", ' !',' !'))   |
+----------------------------------+
| E2808921                         |
+----------------------------------+


E28089 is the hex for the utf8 encoding for "THIN SPACE" (Unicode codepoint 8201=x2009).

And I suggest you do want utf8, not unicode.

You can nest the replaces:

UPDATE wp_posts SET post_content = 
        REPLACE(
        REPLACE(post_content,' !',' !'),
                             ' ?',' ?');


Or, for something wrong with the client (phpmyadmin),

UPDATE wp_posts SET post_content = 
        REPLACE(
        REPLACE(post_content,' !', UNHEX('E2808921')),
                             ' ?', UNHEX('E280893F'));


This assumes that post_content is declared CHARACTER SET utf8 or utf8mb4.