`
shuai1234
  • 浏览: 932445 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

告别乱码:修改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方式.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics