首页
学习
活动
专区
圈层
工具
发布

字符集与字符编码的区别与演进(ASCII、GBK、UNICODE)

演进:GB2312(2字节)→扩展繁体字→GBK(2字节)→扩展少数民族中日韩等→GB18030国家标准(4字节)。...注意GBK都是向下兼容的,即GB18030兼容GB2312,因为使用的编码位置没有重叠。 1.3.1 大五码 Big5码是一套双位元组字符集,使用了双八码储存方法,以两个字节来安放一个字。...具体来说,定义的是下列字节: 范围 第1字节 第2字节 编码数 字数 水准GBK/1 A1–A9 A1–FE 846 717 水准GBK/2 B0–F7 A1–FE 6,768 6,763 水准GBK/...3 81–A0 40–FE (7F除外) 6,080 6,080 水准GBK/4 AA–FE 40–A0 (7F除外) 8,160 8,160 水准GBK/5 A8–A9 40–A0 (7F除外) 192...2.3 GBK 事实上我们使用的GBK、GB18030都是标准,但由于我们的标准只对应一套特定的字符集,所以可以认为GBK就是字符集。

3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    警示:AL32UTF8字符集不是ZHS16GBK字符集的超集

    今天有客户向我咨询:数据库由ZHS16GBK字符集修改为AL32UTF8字符集,发现中文的数据中小部分出现乱码,客户认为AL32UTF8明明可以支持更多的文字,不应该出现这样的情况才对。...不过,之前也一直有个误区,我们都知道AL32UTF8是可以支持多国语言的字符集,对于中文字节存储占用空间比ZHS16GBK多,然后第一反应就认为AL32UTF8应该是ZHS16GBK的超集。...这就说明我们要改的AL32UTF8字符集并不是ZHS16GBK的超集。...而客户端是Windows,chcp结果是936,也就是ZHS16GBK,这也进一步说明了ZHS16GBK和AL32UTF8字符集的不同。...同时实验还验证,如果数据库字符集本身是AL32UTF8,想修改成为ZHS16GBK字符集,也是一样的情况,需要加internal_use参数才可以转换,也就是说这种转换一样可能出现乱码,不过这个情况反倒好理解

    2.7K60

    【字符编码那些事】ASCII、GB2312、GBK、UTF-8编码以及Unicode字符集

    GBK编码 GBK编码在GB2312的基础上又增加了14240个汉字、生僻字和符号。...GBK标准进行解码,然后从第三个字节开始继续遍历检测。...在包含汉字数量上来说,Big5是GBK的子集,但是二者的编码方式是不同的,比如同样“啊”,GBK编码为0xB0A1,Big5编码为0xB0DA。...四、Unicode字符集 每个国家和地区都有一套自己的文字,不同的文字系统就要使用不同的编码标准,这就出现这样一个问题,同一个二进制编码在不同的编码标准中可能代表了不同的字符,比如0xB0A1,在GBK...而Unicode字符集在0xD800~0xDBFF区间内的编号不表示任何字符,UTF-16用这段编号与Unicode字符集中大于0xFFFF的字符编号进行映射,得到扩展的4字节编码。

    5.4K10

    GB2312、GBK、GB18030 这几种字符集的主要区别是什么?

    1 GB2312-80 GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称 GB 0,由中国国家标准总局发布,1981 年 5...对于人名、古汉语等方面出现的罕用字,GB 2312 不能处理,这导致了后来 GBK 及 GB 18030 汉字字符集的出现。...GBK 编码区分三部分: 汉字区 包括 GBK/2:OXBOA1-F7FE, 收录 GB 2312 汉字 6763 个,按原序排列; GBK/3:OX8140-AOFE,收录 CJK 汉字 6080...图形符号区 包括 GBK/1:OXA1A1-A9FE,除 GB 2312 的符号外,还增补了其它符号 GBK/5:OXA840-A9AO,扩除非汉字区。...3 GB18030 GB 18030,全称:国家标准 GB 18030-2005《信息技术中文编码字符集》,是中华人民共和国现时最新的内码字集,是 GB 18030-2000《信息技术信息交换用汉字编码字符集基本集的扩充

    5.5K31

    Linux字符集、编码、转码、字体相关知识

    字符集 字符集,就是把一批字符排个序放到一个表格中。比如ASCII(英文字母数子标点符号等)、GBK(汉字)、Unicode(统一的字符编码,包括世界上所有字符)。...又比如中文GBK字符集采用单字节或双字节编码一个字符,也是直接存储数字ID。编码中,前128个编码都是单字节编码,范围0x00-0x7F,与ASCII相对应。...在Linux系统中,字体文件通常存储在以下几个主要路径中: 系统字体路径: /usr/share/fonts/:这是系统字体的主要存储路径,包含了预安装的系统字体。...Fixed16.psfu.gz 关于代码页(Code Pages) Windows代码页,比如我们最长见的CP936(代表中国 - 简体中文(GB2312)),就是字符编码在Windows上的一种表示方法,Linux...在Linux系统中,输入法框架(如IBus、fcitx)也通常使用Unicode编码。 输入法引擎将用户输入的字符转换为Unicode码点,并将其传递给目标应用程序。

    1.6K10

    Linux运维必会的100道MySql面试题之(一)

    写此文章的由来,源于老男孩老师在群里发的一篇文章 “Linux运维班MySQL必会面试题100道” 因此,民工哥将题抄录下来,然后在线下环境将答案逐一验证,并写出来分享给需要的小伙伴,因答案纯属个人观点...,难免会有不正之处,还望小伙伴加改指正 01 如何启动MySql服务 /etc/init.d/mysqld start service mysqld start Centos 7.x 系统 sysctl...alter user 'root'@'localhost' identified by 'root' 04 登陆数据库 mysql -uroot -ppassword 05 查看当前数据库的字符集...select user(); #进入数据库查询 08 创建GBK字符集数据库mingongge并查看完整创建语句 create database mingongge default charset gbk...) )ENGINE=innodb DEFAULT CHARSET=gbk; 14 查看建表结构及表结构的SQL语句 desc test; show create table test\G ?

    1.3K21

    相克军_Oracle体系_随堂笔记013-字符集

    ZHS16GBK 2.国家字符集 一般都选用AL16UTF16 unicode字符集: UTF8 很老的,不用了。...注:实际生产环境,如果确定数据库只是中国人用(只有中英文相关字符)的话,就采用ZHS16GBK.. sql*plus客户端(设置原则:与所在操作系统字符集一致): windows:一般都是gbk,即chcp...结果为936 set NLS_LANG=american_america.zhs16gbk 语言和地区为中文中国的话,set NLS_LANG=simplified chinese_china.zhs16gbk...linux:一般为utf-8,即echo $LANG 结果为en_US.UTF-8 或zh_CN.UTF-8 export NLS_LANG=american_america.utf8 测试:客户端Linux...服务器操作系统字符集(暂时忽略) ps: 1.因为sql*plus 本身没有字符集,依赖于所在操作系统的字符集,而在远端linux上的oracle也是无法直接访问到windows上的字符集,所以依靠sql

    1.1K10

    MySQL的字符集和乱码问题

    常用字符集  长度 说明 GBK       2 不是国际标准 UTF-8     3 中英文混合的环境,建议使用 Latin1     1 mysql默认字符集...) 2.如果只需要支持中文,并且数据量大,性能要求高,可选择GBK(定长,每个汉字双字节) 3.处理移动互联网业务,可使用utf8mb4字符集 #查看系统的字符集 [root@cots3 ~]# mysql...2.乱码问题 #如果我们设置的字符集不相同的话,就会可能出现乱码 #保证不乱码思想:统一字符集,中英文的环境建议选择utf8 #保证不乱码的关键,保证以下几个统一 1.Linux操作系统 2.操作系统客户端连接...(xshell,ssh) 3.mysql服务端 4.mysql客户端 5.mysql库表 6.开发的程序字符集 #例子:统一设置成utf8 #1.Linux系统 [root@mysql-1 ~]# cat...utf8 #3.mysql客户端 #在/etc/my.cnf文件里面添加客户端模块,无需重启 [client] default-character-set=utf8 #4.mysql库表,一般上面几个改完

    2.8K30

    字符集没统一,DBA的头发就是这么掉光的

    不同的字符集能表示的文字范围不同——Latin1只能表示英文和西欧文字,GBK能表示中文,UTF8能表示全世界几乎所有文字。字符编码:字符集的具体实现方式。同一个字符集可能有多种编码方式。...GBK/GB2312中文字符集。GB2312是最早的简体中文标准,包含6700多个常用汉字。GBK是它的扩展版,包含21000多个汉字和符号。...如果你的系统只在国内用,GBK够用,但和国际化系统对接时,遇到繁体字或少数民族文字就会出问题。UTF8国际通用字符集,能表示全世界几乎所有文字。...从GBK编码的旧库导出数据,导入到UTF8编码的新库,中文全变成了乱码。...老项目迁移:先检查现有数据的实际编码(用HEX()函数看原始字节),确定是GBK还是UTF8。然后制定迁移计划:先改连接字符集→再改字段字符集→最后改表和库的默认字符集。

    27710

    【Oracle字符集】识别及转换导出文件的字符集

    ,Solaris是Big-Endians,Linux是Little-Endians,所以Linux上的输出通过交换可以得到: 0303 5445 58504f52 …....to_char('852','xxxx') from dual; TO_CH ----- 354 对应前两张图 第2、3字节,就知道该导出文件字符集为ZHS16GBk。...最常见的转换发生在从US7ASCII到ZHS16GBK之间。 由于很多数据库最初以US7ASCII字符集存储中文,单纯通过导出导入是无法完成字符集转换的。...对于这种情况,可以通过设置导出字符集为US7ASCII,原样导出数据;导出后修改导出文件的第二、三字符,修改0001为0354,这样就可以将US7ASCII字符集的数据正确导入到ZHS16GBK的数据库中...如果导出文件使用的字符集是US7ASCII,目标数据库的字符集是ZHS16GBK,就可以使用create database的方法来修改,具体操作如下: ? ?

    4.7K40

    windows平台下编辑的内容传到linux平台出现中文乱码的解决办法

    现象说明:在windows下编辑的内容,上传到linux平台下出现中文乱码。...文件,将字符集改为"UTF-8" 按Win键+run出现"运行",在里面输入"notepad"即可打开记事本。...主机传文件是经常的事,但有时文件名有中文,传到Linux机器会有乱码,选择起来也很麻烦,下面简单说下应对方法: 解决办法: 一般这种问题是文件的编码字符集、Shell编码字符集、XShell编码字符集不匹配...临时办法 1)简体中文的Windows一般使用GB字符集,这里将XShell设置为GBK 2) Linux主机 [root@AppServer1 ~]# export LANG=zh_CN.gbk 或者...永久生效 1) XShell属性设置 2) Linux环境变量设置 [root@AppServer1 ~]# vim /etc/profile export LANG=zh_CN.gbk /

    3.4K80
    领券