Mysql数据库编码
基本概念
字符(Character)
指人类语言中最小的表义符号。 例如‘a’、‘b’,‘好’等;
编码(Encoding)
给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符。 例如,我们给字符‘A’赋予数值0,给字符‘B’赋予数值1,则0就是字符‘A’的编码。
字符集(Character Set)
给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合。 例如,给定字符列表为{’A’,’B’}时,{’A’=>0, ‘B’=>1}就是一个字符集; 字符序(Collation)是指在同一字符集内字符之间的比较规则; 确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系; 每个字符序唯一对应一种字符集,但一个字符集可以对应多种字符序,其中有一个是默认字符序(Default Collation); MySQL中的字符序名称遵从命名惯例:以字符序对应的字符集名称开头;以_ci(表示大小写不敏感)、_cs(表示大小写敏感)或_bin(表示按编码值比较)结尾。例如:在字符序“utf8_general_ci”下,字符“a”和“A”是等价的;
MySQL中默认字符集的设置
服务器级(Server)
- 默认的内部操作字符集。
- 配置:character_set_server
数据库级(Db)
- 当前选中数据库的默认字符集
- 配置: [mysqld] default-character-set=utf8
表级(Table)
- 配置及查看:
show full columns from <tablename>;
字段级
- 注意前三种均为默认设置,并不代码你的字段最终会使用这个字符集设置。