日期:2014-05-16 浏览次数:20460 次
在上篇文章里说到,网站会出现乱码的原因已经找到了,都是因为Mysql数据库的字符集不统一!所以,要解决乱码的问题,只要把Mysql数据库的字符集统一就起,就万事OK了!这里教大家怎样修改Mysql数据库的默认字符集。
想必大家做的大部分也都是中文站,笔者推荐大家做站都尽量的使用UTF-8的编码格式。至少UTF-8编码格式的好处,笔者这里就不在多说了,感兴趣的朋友可以去GG一下。修改mysql的默认字符集是通过修改它的配置文件来实现的。一般分两种情况:
Windows平台:
windows下的mysql配置文件是my.ini,一般在Mysql安装目录的根目录下面,打开配置文件,找到default-character-set项,直接修改为:
default-character-set=utf8
然后重新启动mysql,就可以了!
还有一种修改字符集的方法,就是使用mysql的命令:
- mysql>?SET?character_set_client?=?utf8?;?
- mysql>?SET?character_set_connection?=?utf8?;?
- mysql>?SET?character_set_database?=?utf8?;?
- mysql>?SET?character_set_results?=?utf8?;?
- mysql>?SET?character_set_server?=?utf8?;?
- ?
- mysql>?SET?collation_connection?=?utf8?;?
- mysql>?SET?collation_database?=?utf8?;?
- mysql>?SET?collation_server?=?utf8?;?
类Unix平台
在类Unix平台下,方法跟Windows平台下面类似,只是配置文件的存放目录与Windows系统下的不太一样,linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
- find?/?-iname?my.cnf?
找到default-character-set项,直接修改为:
default-character-set=utf8
然后重新启动mysql,就可以了!
注意:
一般就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:
- SET?NAMES?'utf8';?
它相当于下面的三句指令:
- SET?character_set_client?=?utf8;?
- SET?character_set_results?=?utf8;?
- SET?character_set_connection?=?utf8;?
总结:
因此,使用什么数据库版本,不管是3.x,还是4.0.x还是4.1.x,其实对我们来说不重要,重要的有二:
1) 正确的设定数据库编码.MySQL4.0以下版本的字符集总是默认ISO8859-1,MySQL4.1在安装的时候会让你选择。如果你准备使用UTF- 8,那么在创建数据库的时候就要指定好UTF-8(创建好以后也可以改,4.1以上版本还可以单独指定表的字符集)
2) 正确的设定数据库connection编码.设置好数据库的编码后,在连接数据库时候,应该指定connection的编码,比如使用jdbc连接时,指定连接为utf8方式.