导游

  • 啥是字符集?
  • 常见字符集说明
    • ASCII
    • GB2312
    • BIG5
    • GB18030
    • Unicode
  • MySQL字符集查看
  • MySQL字符集配置

啥是字符集?

字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、 GB18030字符集、Unicode字符集等。

计算机要准确的处理各种字符集文字,就需要进行字符编码,以便计算机能够识别和存储各种文字。

常见字符集说明

ASCII

ASCII(American Standard Code for Information Interchange,美国信息互换标准编码)是基于罗马字母表的一套电脑编码系统。

包含控制字符:回车键、退格、换行键等,可显示字符:英文大小写字符、阿拉伯数字和西文符号。7位(bits)表示一个字符,共128字符,字符值从0到127,其中32到126是可打印字符。

7位编码的字符集只能支持128个字符,为了表示更多的欧洲常用字符对ASCII进行了扩展,ASCII扩展字符集使用8位(bits)表示一个字符,共256字符。
ASCII扩展字符集:它是从ASCII字符集扩充出来的,扩充后的符号增加了表格符号、计算符号、希腊字母和特殊的拉丁符号。

GB2312

GB2312又称为GB2312-80字符集,全称为《信息交换用汉字编码字符集·基本集》,由原中国国家标准总局发布,1981年5月1日实施。

GB2312收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。其中包括6763个汉字,其中一级汉字3755个,二级汉字3008个;包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。

BIG5

又称大五码或五大码,1984年由台湾财团法人信息工业策进会和五家软件公司宏碁 (Acer)、神通 (MiTAC)、佳佳、零壹 (Zero One)、大众 (FIC)创立,故称大五码。

Big5字符集共收录13,053个中文字,该字符集在中国台湾使用。

GB18030

GB 18030的全称是GB18030-2000《信息交换用汉字编码字符集基本集的扩充》,是我国政府于2000年3月17日发布的新的汉字编码国家标准,2001年8月31日后在中国市场上发布的软件必须符合本标准。

GB 18030字符集标准解决汉字、日文假名、朝鲜语和中国少数民族文字组成的大字符集计算机编码问题。该标准的字符总编码空间超过150万个编码位,收录了27484个汉字,覆盖中文、日文、朝鲜语和中国少数民族文字。满足中国大陆、香港、台湾、日本和韩国等东亚地区信息交换多文种、大字量、多用途、统一编码格式的要求。并且与Unicode 3.0版本兼容,填补Unicode扩展字符字汇“统一汉字扩展A”的内容。并且与以前的国家字符编码标准(GB2312,GB13000.1)兼容。

Unicode

Unicode字符集编码是Universal Multiple-Octet Coded Character Set 通用多八位编码字符集的简称,是由一个名为 Unicode 学术学会(Unicode Consortium)的机构制订的字符编码系统,支持现今世界各种不同语言的书面文本的交换、处理及显示。该编码于1990年开始研发,1994年正式公布,最新版本是2019年5月7日的Unicode 12.1.0。

Unicode是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求 。

UTF-8是Unicode的其中一个使用方式。 UTF是 Unicode Tranformation Format,即把Unicode转做某种格式的意思。是一种针对Unicode的可变长度字符编码,又称万国码。

UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

MySQL字符集查看

查看mysql服务器支持的字符集

show character set;

mysql> show character set;
+----------+---------------------------------+---------------------+--------+
| Charset  | Description                     | Default collation   | Maxlen |
+----------+---------------------------------+---------------------+--------+
| armscii8 | ARMSCII-8 Armenian              | armscii8_general_ci |      1 |
| ascii    | US ASCII                        | ascii_general_ci    |      1 |
| big5     | Big5 Traditional Chinese        | big5_chinese_ci     |      2 |
| binary   | Binary pseudo charset           | binary              |      1 |
| cp1250   | Windows Central European        | cp1250_general_ci   |      1 |
| cp1251   | Windows Cyrillic                | cp1251_general_ci   |      1 |
| cp1256   | Windows Arabic                  | cp1256_general_ci   |      1 |
| cp1257   | Windows Baltic                  | cp1257_general_ci   |      1 |
| cp850    | DOS West European               | cp850_general_ci    |      1 |
| cp852    | DOS Central European            | cp852_general_ci    |      1 |
| cp866    | DOS Russian                     | cp866_general_ci    |      1 |
| cp932    | SJIS for Windows Japanese       | cp932_japanese_ci   |      2 |
| dec8     | DEC West European               | dec8_swedish_ci     |      1 |
| eucjpms  | UJIS for Windows Japanese       | eucjpms_japanese_ci |      3 |
| euckr    | EUC-KR Korean                   | euckr_korean_ci     |      2 |
| gb18030  | China National Standard GB18030 | gb18030_chinese_ci  |      4 |
| gb2312   | GB2312 Simplified Chinese       | gb2312_chinese_ci   |      2 |
| gbk      | GBK Simplified Chinese          | gbk_chinese_ci      |      2 |
| geostd8  | GEOSTD8 Georgian                | geostd8_general_ci  |      1 |
| greek    | ISO 8859-7 Greek                | greek_general_ci    |      1 |
| hebrew   | ISO 8859-8 Hebrew               | hebrew_general_ci   |      1 |
| hp8      | HP West European                | hp8_english_ci      |      1 |
| keybcs2  | DOS Kamenicky Czech-Slovak      | keybcs2_general_ci  |      1 |
| koi8r    | KOI8-R Relcom Russian           | koi8r_general_ci    |      1 |
| koi8u    | KOI8-U Ukrainian                | koi8u_general_ci    |      1 |
| latin1   | cp1252 West European            | latin1_swedish_ci   |      1 |
| latin2   | ISO 8859-2 Central European     | latin2_general_ci   |      1 |
| latin5   | ISO 8859-9 Turkish              | latin5_turkish_ci   |      1 |
| latin7   | ISO 8859-13 Baltic              | latin7_general_ci   |      1 |
| macce    | Mac Central European            | macce_general_ci    |      1 |
| macroman | Mac West European               | macroman_general_ci |      1 |
| sjis     | Shift-JIS Japanese              | sjis_japanese_ci    |      2 |
| swe7     | 7bit Swedish                    | swe7_swedish_ci     |      1 |
| tis620   | TIS620 Thai                     | tis620_thai_ci      |      1 |
| ucs2     | UCS-2 Unicode                   | ucs2_general_ci     |      2 |
| ujis     | EUC-JP Japanese                 | ujis_japanese_ci    |      3 |
| utf16    | UTF-16 Unicode                  | utf16_general_ci    |      4 |
| utf16le  | UTF-16LE Unicode                | utf16le_general_ci  |      4 |
| utf32    | UTF-32 Unicode                  | utf32_general_ci    |      4 |
| utf8     | UTF-8 Unicode                   | utf8_general_ci     |      3 |
| utf8mb4  | UTF-8 Unicode                   | utf8mb4_0900_ai_ci  |      4 |
+----------+---------------------------------+---------------------+--------+

查看MySQL当前字符集信息

show variables like ‘character_set%’;

mysql> show variables like 'character_set%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8mb4                          |
| character_set_connection | utf8mb4                          |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | utf8mb4                          |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+

配置项说明:
character_set_client:客户端请求数据的字符集
character_set_connection:客户端/服务器连接的字符集
character_set_database:默认数据库字符集,没有对字符集做任何设置,默认就为此字符集为主。
character_set_filesystem:文件系统的编码格式,把操作系统上的文件名转化成此字符集,即把 character_set_client转换character_set_filesystem, 默认binary是不做任何转换的。
character_set_results:结果集,返回给客户端的字符集
character_set_server:数据库服务器的默认字符集
character_set_system:系统的默认字符集
character_sets_dir:字符集安装目录

MySQL字符集配置

有四种方式可对数据库中的默认字符集进行更改。

第一种
在编译安装时,在配置项中可以指定默认字符集-DDEFAULT_CHARSET=字符集。

第二种
在MySQL数据库中,在创建表的时候,可以在最后指定一个字符集。

例如:创建一个big5表,并将字符集改为big5

mysql> create table t(id int,name varchar(6)) charset=big5;

查看t表语句

mysql> show create table t\G
*************************** 1. row ***************************Table: t
Create Table: CREATE TABLE `t` (`id` int(11) DEFAULT NULL,`name` varchar(6) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=big5

第三种
在数据库中可以通过SQL语句修改字符集配置项中的默认字符集。

例如:将character_set_client项的默认字符集改为big5

mysql> show variables like 'character_set%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8mb4                          |
| character_set_connection | utf8mb4                          |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | utf8mb4                          |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+

将其改为big5

mysql> set character_set_client=big5;

再次查看字符集信息

mysql> show variables like 'character_set%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | big5                             |
| character_set_connection | utf8mb4                          |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | utf8mb4                          |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+

注:此方式为临时更改,再次连接数据库时需要重新设置

第四种
通过修改my.cnf文件修改默认字符集,将character-set-server=字符集default-character-set=字符集配置项添加入my.cnf文件中,重启MySQL即可。

MySQL中的字符集是啥?如何更改?相关推荐

  1. 七、MySQL中的字符集 - 系统的撸一遍MySQL

    2019独角兽企业重金招聘Python工程师标准>>> 什么是字符集? 计算中的字符文字集合(每个自负文字分配一个对应的数字),将字符集中的文字符号进行编码以便于计算机识别处理. 字 ...

  2. mysql中基字符集_Mysql中的字符集

    1.字符集基础 在计算机的眼中只有0和1,但是在人类世界中却有上百种语言,每种语言又有成千上万的文字,那么如何在计算中表示人类世界中的这些文字呢? 在上个世纪60年代的时候,美国首先定义了一套规则,在 ...

  3. mysql中设置字符集语句_mysql设置字符集

    一般情况下,防止程序交互过程中出现乱码情况,所以前后台都会同意编码格式. 因为UTF-8编码方式国际通用,所以我在mysql中设置编码格式UTF-8. 先查看mysql编码格式. show varia ...

  4. MySQL中的字符集涵义及使用方法总结(二)

    五.乱码的避免 最好让上述9个字符集变量值保持一致,或者至少"兼容",同时也要考虑到OS中locale的值. 当然:character_set_system例外,它是存储和表示元信 ...

  5. mysql中设置字符集语句_MYSQL字符集设置的方法详解(终端的字符集)

    前言 每次利用终端 创建数据库或者创建表的时候,字符集都是latin1,或者进行插入值的时候,显示的是乱码(不指定字符集的时候)如下: 查看当前数据库的字符集 character_set_client ...

  6. MySQL中字段字符集不同导致索引不能命中

    今天写了一个sql,其中涉及的表中的数据量都差不多为50w左右,查询发现用了8s.这个只是测试服上数据,放到正式服上,肯定一运行就挂了. SELECTOrders. NO,GuidNo,Orders. ...

  7. 在mysql中什么情况下不能指定字符集_如何为Mysql选择合适的字符集?

    MySQL服务器可以支持多种字符集,在同一台服务器,同一个数据库,甚至同一个表的不同字段都可以指定使用不同的字符集,相比Oracle等其他数据库管理系统,在同一个数据库只能使用相同的字符集,MySQL ...

  8. mysql中utf8和utf8mb4的详解用法与区别

    一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除了将编码改为ut ...

  9. 全面了解mysql中utf8和utf8mb4的区别

    一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除了将编码改为ut ...

最新文章

  1. 【译】关于机器学习的11个开源工具
  2. 深度学习-Tensorflow2基础知识
  3. Linux操作系统知识
  4. Spread for Windows Forms快速入门(1)---开始使用Spread
  5. 马上工作了,想问下要注意哪些问题?
  6. JavaScript DOM编程艺术(第2版) 笔记
  7. 12.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
  8. c语言怎么删掉一个空格,新人提问:如何将输出时每行最后一个空格删除
  9. 数据中心局部高热处理方案
  10. Vue 源码学习过程 - Observer/Dep/Watcher三者实现数据双向绑定
  11. 吉信通:如何使用电脑简单的发送短信
  12. WIN10添加桌面,切换桌面,蹭蹭提高效率,甚至节约显示器!!!
  13. 系统突然访问变慢,如何排查和解决?
  14. 配置TensorFlow的cuda环境教程
  15. 求二叉树中度为1的结点个数
  16. 干涉仪测向matlab程序,一种相关干涉仪测向算法的快速实现
  17. shell编程——Shell条件判断之字符串判断
  18. 【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.11 路径
  19. 听说B站视频的完成率也是一项挺重要的指标,下面来提高它
  20. 细数Django框架核心历史SQL注入漏洞(上)

热门文章

  1. android7.1 打印机 (ghostscript+hpijs - hplip)
  2. shopee跨境店铺怎么申请入驻-跨境知道
  3. 键盘钢琴软件v1.0.1.0官方pc版
  4. 韶音骨传导耳机怎么样?南卡旗舰和韶音旗舰横评对比,区别在这些方面
  5. 【论文阅读笔记】Autoencoder as Assistant Supervisor
  6. 使用eBPF将网络功能Offload到网卡
  7. 一文理顺离散信号的傅里叶变换
  8. 【小程序专栏】个人及企业资质该如何注册小程序?
  9. 购买的保险是不是夫妻共同财产
  10. VTK Actor ImageData polyData,Transform 平移,旋转