(推荐教程:mysql视频教程)
字符(character)是计算机中字母、数字、符号的统称,一个字符可以是一个中文汉字、一个英文字母、一个阿拉伯数字、一个标点符号等。
计算机是以二进制的形式来存储数据的。平时我们在显示器上看到的数字、英文、标点符号、汉字等字符都是二进制数转换之后的结果。
字符集(character set)定义了字符和二进制的对应关系,为字符分配了唯一的编号。常见的字符集有 ascii、gbk、ios-8859-1 等。
字符编码(character encoding)也可以称为字集码,规定了如何将字符的编号存储到计算机中。
大部分字符集都只对应一种字符编码,例如:ascii、ios-8859-1、gb2312、gbk,都是既表示了字符集又表示了对应的字符编码。所以一般情况下,可以将两者视为同义词。unicode 字符集除外,unicode 有三种编码方案,即 utf-8、utf-16 和 utf-32。最为常用的是 utf-8 编码。
在 mysql 中,可以通过show variables like 'character%';命令查看当前 mysql 使用的字符集,命令和运行结果如下:
mysql> show variables like 'character%';+--------------------------+---------------------------------------------------------+| variable_name | value |+--------------------------+---------------------------------------------------------+| character_set_client | gbk || character_set_connection | gbk || character_set_database | latin1 || character_set_filesystem | binary || character_set_results | gbk || character_set_server | latin1 || character_set_system | utf8 || character_sets_dir | c:\program files\mysql\mysql server 5.7\share\charsets\ |+--------------------------+---------------------------------------------------------+8 rows in set, 1 warning (0.01 sec)
上述运行结果说明如下表所示:
名称说明
character_set_client mysql 客户端使用的字符集
character_set_connection 连接数据库时使用的字符集
character_set_database 创建数据库使用的字符集
character_set_filesystem mysql 服务器文件系统使用的字符集,默认值为 binary,不做任何转换
character_set_results 数据库给客户端返回数据时使用的字符集
character_set_server mysql 服务器使用的字符集,建议由系统自己管理,不要人为定义
character_set_system 数据库系统使用的字符集,默认值为 utf8,不需要设置
character_sets_dir 字符集的安装目录
乱码时,不需要关心 character_set_filesystem、character_set_system 和 character_sets_dir 这 3 个系统变量,它们不会影响乱码 。
在 mysql 中,查看可用字符集的命令和执行过程如下:
mysql> show character set;+----------+---------------------------------+---------------------+--------+| charset | description | default collation | maxlen |+----------+---------------------------------+---------------------+--------+| big5 | big5 traditional chinese | big5_chinese_ci | 2 || dec8 | dec west european | dec8_swedish_ci | 1 || cp850 | dos west european | cp850_general_ci | 1 || hp8 | hp west european | hp8_english_ci | 1 || koi8r | koi8-r relcom russian | koi8r_general_ci | 1 || latin1 | cp1252 west european | latin1_swedish_ci | 1 || latin2 | iso 8859-2 central european | latin2_general_ci | 1 || swe7 | 7bit swedish | swe7_swedish_ci | 1 || ascii | us ascii | ascii_general_ci | 1 || ujis | euc-jp japanese | ujis_japanese_ci | 3 || sjis | shift-jis japanese | sjis_japanese_ci | 2 || hebrew | iso 8859-8 hebrew | hebrew_general_ci | 1 || tis620 | tis620 thai | tis620_thai_ci | 1 || euckr | euc-kr korean | euckr_korean_ci | 2 || koi8u | koi8-u ukrainian | koi8u_general_ci | 1 || gb2312 | gb2312 simplified chinese | gb2312_chinese_ci | 2 || greek | iso 8859-7 greek | greek_general_ci | 1 || cp1250 | windows central european | cp1250_general_ci | 1 || gbk | gbk simplified chinese | gbk_chinese_ci | 2 || latin5 | iso 8859-9 turkish | latin5_turkish_ci | 1 || armscii8 | armscii-8 armenian | armscii8_general_ci | 1 || utf8 | utf-8 unicode | utf8_general_ci | 3 || ucs2 | ucs-2 unicode | ucs2_general_ci | 2 || cp866 | dos russian | cp866_general_ci | 1 || keybcs2 | dos kamenicky czech-slovak | keybcs2_general_ci | 1 || macce | mac central european | macce_general_ci | 1 || macroman | mac west european | macroman_general_ci | 1 || cp852 | dos central european | cp852_general_ci | 1 || latin7 | iso 8859-13 baltic | latin7_general_ci | 1 || utf8mb4 | utf-8 unicode | utf8mb4_general_ci | 4 || cp1251 | windows cyrillic | cp1251_general_ci | 1 || utf16 | utf-16 unicode | utf16_general_ci | 4 || utf16le | utf-16le unicode | utf16le_general_ci | 4 || cp1256 | windows arabic | cp1256_general_ci | 1 || cp1257 | windows baltic | cp1257_general_ci | 1 || utf32 | utf-32 unicode | utf32_general_ci | 4 || binary | binary pseudo charset | binary | 1 || geostd8 | geostd8 georgian | geostd8_general_ci | 1 || cp932 | sjis for windows japanese | cp932_japanese_ci | 2 || eucjpms | ujis for windows japanese | eucjpms_japanese_ci | 3 || gb18030 | china national standard gb18030 | gb18030_chinese_ci | 4 |+----------+---------------------------------+---------------------+--------+41 rows in set (0.02 sec)
其中:
第一列(charset)为字符集名称;
第二列(description)为字符集描述;
第三列(default collation)为字符集的默认校对规则;
第四列(maxlen)表示字符集中一个字符占用的最大字节数。
常用的字符集如下:
latin1 支持西欧字符、希腊字符等。
gbk 支持中文简体字符。
big5 支持中文繁体字符。
utf8 几乎支持所有国家的字符。
以上就是在mysql5.5中如何查询字符编码?的详细内容。