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中也没设置,浏览器会按自己的默认值来解码。
wala-wo