MySQL字符集相关设置(二)

2015-03-18 22:56:03 · 作者: · 浏览: 88
introducer设置的影响,对于比较之类的操作可能产生完全不同的结果,需要小心!
?
总结
? ? 根 据上面的分析和建议,我们解决我们遇到问题应该使用什么方法大家心里应该比较清楚了。对,就是在创建database的时候指定字符集,不要去通过修改默 认配置来达到目的,当然你也可以采用指定表的字符集的形式,但很容易出现遗漏,特别是在很多人都参与设计的时候,更容易纰漏。
?
? ? 虽然不提倡通过修改mysql的默认字符集来解决,但对于如何去修改默认字符集,我这里还是给出一些方法,仅供大家参考。
?
MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置.
? ? (1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;
? ? (2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
? ? (3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
? ? (4)安装 MySQL选择多语言支持,安装程序会自动在配置文件中把default_character_set 设置为 UTF-8,保证缺省情况下所有的数据库所有表的所有列的都用 UTF-8 存储。
查看默认字符集
? ? (默认情况下,mysql的字符集是latin1(ISO_8859_1),如何查看在上面我们已经给出了相关命令
修改默认字符集
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
? ? ?如 ? default-character-set = utf8
? ? ? character_set_server =? utf8
? ? ?修改完后,重启mysql的服务
(2) 还有一种修改字符集的方法,就是使用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 ;
?
? ? 设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,存入数据库的仍然是乱码。那connection连接层上可能出了问题。解决方法是在发送查询前执行一下下面这句: SET NAMES 'utf8';它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;