首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

字符集与字符编码的区别与演进(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就是字符集

1.2K20

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

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

1.7K60
您找到你想要的搜索结果了吗?
是的
没有找到

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《信息技术信息交换用汉字编码字符集基本集的扩充

2.4K31

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 ?

67321

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.1K30

相克军_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

65010

【程序源代码】Oracle19c修改字符集操作

关键字:oracle安装 昨天安装了个oracle19c,但在导入数据库时发现原来数据库的字符集设置错了,导致数据库文件无法正常导入并还原。今天又折腾了一半天查找如果修改oracle的字符集的操作。...SQL>ALTER DATABASE CHARACTER SET ZHS16GBK; ALTER DATABASE CHARACTER SET ZHS16GBK * ERROR at line 1...: ORA-12712: new character set must be a superset of old character set 提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更...: SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; Database altered....SQL> select * from v$nls_parameters; 略 在内容中找下NLS_CHARACTERSET,这个值:ZHS16GBK 19 rows selected.

4.3K20

【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的方法来修改,具体操作如下: ? ?

3.5K40

MySQL字符集终极指南--进阶篇

字符集四类设置1.1 操作系统字符集以下配置项是Linux系统的本地化(localization)设置,用于控制系统在不同方面如何呈现和处理数据。...我们进行一个简单的测试,从1个网页上复制汉字"数据库"到linux的文本文件中,这个网页的原始编码是什么呢?...摸拟测试gbk->gbk->gbk 按顺序分别表示插入字符串原始字符集,客户端字符集,表字符集,简单理解就是字符的原始字符集,我们告诉数据库字符是什么字符集,目标字符集。...因为虽然数据的字符集GBK,但连接字符集是UTF8,所以数据库进行了转换,然后终端(操作系统)字符集也是UTF8,所以能正常显示。...----公众号精华文章:1.MySQL谬误集01:读不加锁2.MySQL8.1来了:MySQL创新和长期支持(LTS)版本简介3.Gh-ost表P0级BUG:可能导致数据丢失4.从一道数据库面试题彻谈

1.4K31

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 /

2.3K80

Linux下MySQL的彻底卸载和安装配置字符集

前言: Linux环境下MySQL的安装和配置在网上已经有很多教程了。之所以写这篇文章是因为在配置字符集的时候找了网上的一些教程发现并不能用导致折腾了一阵子。下面的教程均是亲自实践。...最简单的安装方式就是命令行方式,依次输入一下代码即可: 1 sudo apt-get install mysql-server2 3 sudo apt-get install mysql-client MySQL字符集的配置...首先我们在终端打开mysql: 1 mysql -uroot -p 然后输入密码即可进入mysql 然后我们输入下面的查询语句来查看默认的字符集设置: 1 show variables like '%...可以看出我们的character_set_database和character_set_server两处还未设置成utf8(或者GBK)。 下面我们只需要在mysql的配置文件修改即可。...接下来进入mysql,再来看一下字符集设置: ? 可以看到除了system之外均该为了utf8. 注意 字符集之前建立的数据库内的数据仍是中文乱码,这时我们备份一下数据新建即可。

1.7K70
领券