Question

In /etc/my.cnf the following has been added


character-set-server=utf8
collation-server=utf8_general_ci

But for the database and tables created before adding the above how to convert the database and tables to utf8 with collation settings

Was it helpful?

Solution

Well, the database character set and table character set are just defaults (they don't affect anything directly). You'd need to modify each column to the proper charset. PHPMyAdmin will do this for you (just edit the column, then change the character set). If you want to do raw SQL, you'll need to know the column definition (SHOW CREATE TABLE foo will show you the definition). Then, you can use ALTER TABLE to change the definition.

To change the default charset for a table:

ALTER TABLE `tablename` DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';

To change the charset of a column with the definition `foo VARCHAR(128) CHARACTER SET 'foo' COLLATE 'foo'``:

ALTER TABLE `tablename` MODIFY 
    `foo` VARCHAR(128) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top