Jump to:

22976 Posts in 11493 Topics by 2824 members

General Questions

SilverStripe Forums » General Questions » MySQL charset problem.

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, biapar, Willr, Ingo, swaiba, simon_w

Page: 1
Go to End
Author Topic: 2858 Views
  • dab
    Avatar
    Community Member
    50 Posts

    MySQL charset problem. Link to this post

    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.

  • Hiker
    Avatar
    Community Member
    2 Posts

    Re: MySQL charset problem. Link to this post

    I have the same problem with hoster. Only some symbols (ш, щ) crash the output. Does anybody knows how to solve it?

  • Fred C.
    Avatar
    Community Member
    15 Posts

    Re: MySQL charset problem. Link to this post

    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::connect($databaseConfig);
    DB::query('set charset utf8');
    DB::query('set names utf8');

  • Hiker
    Avatar
    Community Member
    2 Posts

    Re: MySQL charset problem. Link to this post

    I have found solution for the problem in this post
    http://silverstripe.org/migrating-a-site-to-silverstripe/show/256159?start=8#post262150

    I've put this file in my site's code directory, changed connection type to "UTF8MySQLDatabase", and run /dev/build/.

    Attached Files
  • Fred C.
    Avatar
    Community Member
    15 Posts

    Re: MySQL charset problem. Link to this post

    @Hiker, thanks. That is much nicer, because it does not prematurely open the connection to the database.

    2858 Views
Page: 1
Go to Top

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.