As some of you are aware, I help run the innereyes.com free blog host. We use WordPress, and have recently started getting a lot of traffic from countries like China, Korea and even Isreal. Which brought up a problem I wasn't aware of until now.
Many people have complained that extended characters aren't being properly displayed. WP is set to UTF8 by default (and most people haven't changed that) and MySQL is set to use UTF8. So why aren't these extended characters being properly stored and displayed?
The patch we found that seems to have worked for some people but not for others was to add the line
$this->query ("SET NAMES 'utf8'"); after line 43 in
wp-db.php. Unfortunately, this seems to break many people's older posts, although new posts are properly encoded and displayed.
So the question is: where, exactly, is this bug from? Is it a WP bug? A MySQL bug (that's my guess)? An Apache bug?
And how can this bug be fixed without turning older posts into gibberish?