mysql字符集操作

MySQL的字符集支持(Character Set Support)主要是两个方面:
1、字符集(Character set)

2、排序方式(Collation)

mysql对于字符集的支持细化到以下几个层次:
服务器, 数据库, 数据表,数据列, 连接等


mysql字符集参数选项各代表含义

 

   character_set_client:    客户端来源数据使用的字符集
   character_set_connection:连接层字符集   
   character_set_database:  当前选中数据库的默认字符集
   character_set_filesystem: 底层文件系统
   character_set_results:   查询结果字符集
   character_set_server:    默认的内部操作字符集
   character_set_system:   系统元数据(字段名等)字符集
   character_sets_dir:      这个自然是指明目录了

 

mysql 查询当前数据库的字符集参数

 

show variables like 'character%';


mysql更改字符集设置

 

1、直接修改mysql的my.ini文件中的字符集键值

default-character-set = utf8
character_set_server = utf8

修改完后,重启mysql的服务

2、客户程序在查询之前执行下以下设置

 

set names utf8

 

其实set names utf8 相当于以下操作

set character_client        = utf8;

set character_connection    = utf-8;

set character_results       = utf-8;

 

3、mysql修改指定数据库的字符集

use mydb;

alert database mydb character set utf8;


4、mysql创建数据库指定数据库字符集

 

create database mydb character set utf8;

 

5、mysql直接设定所有的客户端字符集、连接层字符集、查询结果字符集

set character_set_client = utf8;

set character_set_connection = utf8;

set character_set_results = utf8;


字符集对数据查询的影响

不同的字符集会导致乱码的出现,在设计数据库时定义好mysql的字符编码.

mysql 默认情况下他的collation是 utf8_general_ci ,不区分大小写  ,在做某些有大小写区分的业务上要加以注意。


在web页面编码中起决定作用的是http response报头中的Content-Type中的charset设置,这个设置成哪种编码,浏览器就会按哪种编码来解码。

1、如果http response报头中没有设置charset,浏览器会根据html中的meta中指定的charset解码.

2、如果连meta中也没设置,浏览器会按自己的默认值来解码。



 

posted @ 2012-08-22 20:31  wala-wo  阅读(187)  评论(0编辑  收藏  举报