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

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

注意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/...2.3 GBK 事实上我们使用的GBK、GB18030都是标准,但由于我们的标准只对应一套特定的字符集,所以可以认为GBK就是字符集。...比如当我们提到“数据库使用的是unicode字符集”,这样的说法是错误的,数据库的数据一定要具体到某一种字符编码,只提到字符集是没有意义的,例如数据库使用UFT-8编码。...字符集:字符和字符码的映射关系,例如在ASCIIa的字符码就是97,表示在字符集的97号位置上是字符’a’。

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

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

今天有客户向我咨询:数据库由ZHS16GBK字符集修改为AL32UTF8字符集,发现中文的数据中小部分出现乱码,客户认为AL32UTF8明明可以支持更多的文字,不应该出现这样的情况才对。...从现象看,基本可以确认故障是字符集转换导致的,Oracle也强烈不建议做这种字符集转换的操作,幸好该客户的操作只是在一个测试环境操作的。...不过,之前也一直有个误区,我们都知道AL32UTF8是可以支持多国语言的字符集,对于中文字节存储占用空间比ZHS16GBK多,然后第一反应就认为AL32UTF8应该是ZHS16GBK的超集。...这就说明我们要改的AL32UTF8字符集并不是ZHS16GBK的超集。...而客户端是Windows,chcp结果是936,也就是ZHS16GBK,这也进一步说明了ZHS16GBK和AL32UTF8字符集的不同。

1.8K60

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

这些用ASCII码表示的字符的集合叫做ASCII字符集。 在英文世界,使用26个字母就可以拼写出全部的英文单词,每个字字母就是一个字符,所以,用8位的ASCII码就可以对整个英文世界进行编码。...GBK编码 GBK编码在GB2312的基础上又增加了14240个汉字、生僻字和符号。...四、Unicode字符集 每个国家和地区都有一套自己的文字,不同的文字系统就要使用不同的编码标准,这就出现这样一个问题,同一个二进制编码在不同的编码标准可能代表了不同的字符,比如0xB0A1,在GBK...而Unicode字符集在0xD800~0xDBFF区间内的编号不表示任何字符,UTF-16用这段编号与Unicode字符集中大于0xFFFF的字符编号进行映射,得到扩展的4字节编码。...五、ANSI编码 ANSI编码是Windows的一种称呼,像GBK、GB2312都是ANSI编码,在不同语言的操作系统,ANSI表示的编码是不同的,比如中文、泰文、法文都有各自的编码方式,这些编码方式对

44710

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

1 GB2312-80 GB 2312 或 GB 2312-80 是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称 GB 0,由中国国家标准总局发布,1981 年 5...对于人名、古汉语等方面出现的罕用字,GB 2312 不能处理,这导致了后来 GBK 及 GB 18030 汉字字符集的出现。...2 GBK GBK 即汉字内码扩展规范,K 为汉语拼音 Kuo Zhan(扩展)“扩”字的声母。英文全称 Chinese Internal Code Specification。...GBK 共收入 21886 个汉字和图形符号,包括: GB 2312 的全部汉字、非汉字符号。 BIG5 的全部汉字。...GBK 向下与 GB 2312 完全兼容,向上支持 ISO 10646 国际标准,在前者向后者过渡过程起到的承上启下的作用。

2.8K31

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

>chcp 活动代码页: 936 字符集其实就是“字符”和“编码”的一张对照表, 数据库安装过程,会选择确认下面两个字符集: 1.数据库字符集:数据库需要存储多国语言选择AL32UTF8,只有中英文选择...ZHS16GBK 2.国家字符集 一般都选用AL16UTF16 unicode字符集: UTF8 很老的,不用了。...注:实际生产环境,如果确定数据库只是中国人用(只有中英文相关字符)的话,就采用ZHS16GBK.. sql*plus客户端(设置原则:与所在操作系统字符集一致): windows:一般都是gbk,即chcp...) from dual; insert into t2 values (2,'靖宇'); commit; 注意:字符集设置错误导致库存储的就是错误的编码,这个几乎是不可逆的`一定要慎重仔细设置好字符集...服务器操作系统字符集(暂时忽略) ps: 1.因为sql*plus 本身没有字符集,依赖于所在操作系统的字符集,而在远端linux上的oracle也是无法直接访问到windows上的字符集,所以依靠sql

65610

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

在传统的EXP导出文件,记录着导出使用的字符集id,通过查看导出文件头的第2、3个字节,我们可以找到十六进制表示的字符集ID,在Windows上,可以使用UltraEdit等工具打开dmp文件,查看其导出字符集...,Solaris是Big-Endians,Linux是Little-Endians,所以Linux上的输出通过交换可以得到: 0303 5445 58504f52 …....最常见的转换发生在从US7ASCII到ZHS16GBK之间。 由于很多数据库最初以US7ASCII字符集存储中文,单纯通过导出导入是无法完成字符集转换的。...对于这种情况,可以通过设置导出字符集为US7ASCII,原样导出数据;导出后修改导出文件的第二、三字符,修改0001为0354,这样就可以将US7ASCII字符集的数据正确导入到ZHS16GBK的数据库...from test; NAME ---------- 测试 test 当发出“create database character set us7ascii;”命令时,数据库v$nls_parameters字符集设置随之更改

3.6K40

Visual StudioC++关于Unicode字符集和多字节字符集

1.Unicode字符集 原本标准字符集为8位的ASCII码,但世界上的书写语言不能简单地用256个8位代码即一字节表示,就试更宽的值,例如16位值。这就是Unicode非常简单的原理。...Unicode不同部分的字符都同样基于现有的标准。...2.多字节字符集 由于有些符号用8位即一个字节就可以表示,若使用Unicode字符集用16位表示,会造成内存空间浪费。...因此提出多字节字符集 (MBCS),字符的宽度可以是一个字节,也可是两个字节或多个字节。这些多字节字符集按单字节值对待,其中一些字符改变了后续字符的含义。...3.两种字符集对比 VC6的设置:多字节。 VS的默认设置:Unicode,在属性可以改成多字节。 多字节编码:char,string,CStringA。

2.1K30

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

MySQL字符集与字符序

这篇文章详细介绍一下MySQL字符集和字符序相关的问题,里里外外地了解一下字符集和字符序的方方面面,同时重点说明一下开发需要注意的问题。文章基于MySQL 8.0,也会涉及到5.7版本。...(column)以及字符串字面量(string literal)等多个级别的字符集与字符序的设置;库表创建以及程序尽可能使用utf8mb4字符集(可支持emoji);MySQL的utf8字符集是utf8mb3...比如:汉语的所有字符构成一个字符集(也包括不是汉字的字符,比如标点符号等);英语的所有字符构成一个字符集;等等对于字符集中的每个字符来说,都有两个属性:一个是这个字符在所属字符集中的位置,可以叫做字符序号...MySQL字符集与字符序了解了字符集和字符序之后,来看看MySQL字符集与字符序。...| GBK Simplified Chinese | gbk_chinese_ci | 2 || geostd8 | GEOSTD8 Georgian

2.7K42

WEB开发字符集和编码

还有我们常用的各种字符集,常用的编码转换,都是怎么进行的呢? 本博文所写的内容不是技术干货,只是对我们常用的字符集和编码的一个小总结,小科普。...我相信读完本文,您应该对 字符集和常见编码方式 有个差不多的认识了。...最新的UCS-4标准是一个尚未填充完全的31位 Unicode 字符集,它使用 31 位来保存字符,加上恒为 0 的首位,共需占据 32 位,4 字节。...标准的 GBK 编码,数据库中使用 Unicode 的不同的编码方式存储,网页浏览器又以不同编码来解析,统一为 UTF-8 进行数据编码即可解决这类问题。...小结 字符集和编码一般不是 web 开发的重点,但了解一下也挺有意思的,既能增长见识,还能预防哪一天突然踩了其中的坑。 如果您觉得本文对您有帮助,可以帮忙点一下推荐,也可以关注我。

2K50

MySQL字符集详解

字符集编码不仅影响数据存储,还影响client程序和数据库之间的交互.在mysql输入命令show session variables like '%char%'能够看到例如以下一些字符集(下面是以win10...为例,生产中多数时linux,在linux里面除了latin1之外都是utf8的字符集):     mysql> show variables like "%char%";     +--------...------------------+-------------------------------------------+     8 rows in set (0.00 sec)   mysql字符集都相应着一个默认的校对规则...二、MySQL字符集编码层次   第一部分主要是归纳了MySQL文档关于字符集编码的说明。这部分主要说明下MySQL字符集编码层次:服务端-->数据库-->表-->字段。   ...从文档的解释来看,mysql连接字符集转换主要包含以下三个步骤: 1.character_set_client是client发送过来的sql语句的编码,由于服务端本身并不知道client的sql语句的编码是什么

3.3K10

PythonGBK, UTF-8和Unicode的编码问题

那么Python 2.x的字符串究竟是个什么呢? 基本编码知识 在了解Python字符串(String)的本质前,我们需要知道ASCII、GBK、UTF-8和Unicode的关系究竟几何。...由于Unicode编码的字符串体积很大,因此一般来说Unicode编码只是文字在内存的内在形式,具体的存储(如文件、网页等)都需要靠外在的编码(UTF-8、GBK等)诠释。...每个汉字占2字节 print s # 在GBK/ANSI环境下(如Windows),输出乱码, #因为此时屏幕输出会被强制理解为GBKLinux下显示正常 print g # 在Windows下输出...“你好”, #Linux(UTF-8环境)下报错,原因同上。...原文地址:PythonGBK, UTF-8和Unicode的编码问题, 感谢原作者分享。

4K10
领券