日期:2014-05-16  浏览次数:20436 次

告别乱码:修改MySQL数据库的默认字符集

 在上篇文章里说到,网站会出现乱码的原因已经找到了,都是因为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的命令:

  1. mysql>?SET?character_set_client?=?utf8?;?
  2. mysql>?SET?character_set_connection?=?utf8?;?
  3. mysql>?SET?character_set_database?=?utf8?;?
  4. mysql>?SET?character_set_results?=?utf8?;?
  5. mysql>?SET?character_set_server?=?utf8?;?
  6. ?
  7. mysql>?SET?collation_connection?=?utf8?;?
  8. mysql>?SET?collation_database?=?utf8?;?
  9. mysql>?SET?collation_server?=?utf8?;?

  类Unix平台

  在类Unix平台下,方法跟Windows平台下面类似,只是配置文件的存放目录与Windows系统下的不太一样,linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:

  1. find?/?-iname?my.cnf?

  找到default-character-set项,直接修改为:

default-character-set=utf8

  然后重新启动mysql,就可以了!

注意:

  一般就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

  1. SET?NAMES?'utf8';?


它相当于下面的三句指令:

  1. SET?character_set_client?=?utf8;?
  2. SET?character_set_results?=?utf8;?
  3. 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方式.