星期四, 七月 17, 2008

MySQL 的字符集

在my.cnf中加如下代码:
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8


如果不加以上代码,那么即便MYSQL编译安装时指定的编码是UTF8,那么在建库时其默认编码仍是LATIN1,而由于字符集的继承性,库中的表也是LATIN1的了。

这里列几条命令,大家可以自己试下:
1.列出MYSQL支持的所有字符集:
SHOW CHARACTER SET;

2.当前MYSQL服务器字符集设置
SHOW VARIABLES LIKE 'character_set_%';

3.当前MYSQL服务器字符集校验设置
SHOW VARIABLES LIKE 'collation_%';

4.显示某数据库字符集设置
show create database 数据库名;

5.显示某数据表字符集设置
show create table 表名;

6.修改数据库字符集
alter database 数据库名 default character set 'utf8';

7.修改数据表字符集
alter table 表名 default character set 'utf8';

8.建库时指定字符集
create database 数据库名 character set gbk collate gbk_chinese_ci;

9.建表时指定字符集
CREATE TABLE `mysqlcode` (
`id` TINYINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`content` VARCHAR( 255 ) NOT NULL
) TYPE = MYISAM CHARACTER SET gbk COLLATE gbk_chinese_ci;
还有,改了数据库的编码,数据库要重建才有效,不仅仅是删除表,要连整个数据库都删除再重建原来的表才可以,反正我是这么解决的。

没有评论: