15 April 2009 at 5:45am
(Last edited: 16 April 2009 9:35am),
I move site to new host and get problems with mysql encoding. Their support say that i should use SET NAMES and SET CHARACTER SET in my scripts, which connect to database. What should i do? How i may make default mysql encoding to unicode?
I'm set utf8 as database encoding in phpMyAdmin, install SilverStripe, but can't use russian language cause mysql save data in wrong encoding. When i copy data from phpMyAdmin->my database->table SiteTree_Live->Content field, and try to recognize which encoding used there with one charset site, i get that it is cp1251. I think that this is their default mysql encoding, and they say that i should change way how scripts connect to database.
May be i write a bit confused message, sorry.
I should resolve this issue.
2 September 2009 at 10:18am
The problem is that many MySQL instances use latin1 as the default client connection character set. I am not sure if this is a best practice, but my solution for this problem is to add this at the bottom of _config.php:
# Force database connection to use UTF8.
DB::query('set charset utf8');
DB::query('set names utf8');