字符集

来源:互联网 发布:打谱软件muse用法 编辑:程序博客网 时间:2024/05/16 10:31

MYSQL 字符集问题

前一段时间,一直被mysql的字符集困扰,今天就这方面的知识总结一下.

MySQL的字符集支持(Character Set Support)有两个方面:

字符集(Character set)和排序方式(Collation)

对于字符集的支持细化到四个层次:

 服务器(server)数据库(database)数据表(table)连接(connection)

 

 

一般就算设置了表的默认字符集为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-1MySQL4.1在安装的时候会让你选择。如果你准备使用UTF- 8,那么在创建数据库的时候就要指定好UTF-8(创建好以后也可以改,4.1以上版本还可以单独指定表的字符集)
  2)
正确的设定数据库connection编码.设置好数据库的编码后,在连接数据库时候,应该指定connection的编码,比如使用jdbc连接时,指定连接为utf8方式.