字符集
国标字符集
国标字符集
国标字符集(GB2312)是中华人民共和国国家标准化管理委员会于1980年发布的一种字符编码标准,是中国国家标准GB 2312-1980的简称。
它共收录了7445个汉字和682个非汉字字符,包括了基本汉字、扩展汉字和非汉字字符。
国标字符集是为了解决中国汉字电子化处理的问题而设计的。
它采用了双字节表示形式,其中第一个字节的范围为0xA1-0xF7,第二个字节的范围为0xA1-0xFE,共有94x94=8836个编码位置。
但其中部分编码位置并未使用,因此实际上可以表示的字符数量为7445个。
国标字符集的特点是适用于简体中文,每个字符占据两个字节的存储空间,其中除了基本ASCII字符和拉丁文字符外,大部分是汉字。
它是目前在中国大陆仍然广泛使用的字符编码标准之一,尤其在早期的计算机系统和操作系统中得到了广泛应用。
然而,由于国标字符集的容量有限,并不能完全覆盖所有中文字符,因此在后来的发展中逐渐被GB18030和UTF-8等字符集所取代,它们能更好地满足多种语言和字符的需求。
字符集简介
一、什么是字符集?什么是编码?字符(Character)是文字与符号的总称,包括文字、图形符号、数学符号等。
一组抽象字符的集合就是字符集(Charset)。
字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。
一组有共同特征的字符也可以组成字符集,比如繁体汉字字符集、日文汉字字符集。
字符集的子集也是字符集。
计算机要处理各种字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码(Encoding)。
制定编码首先要确定字符集,并将字符集内的字符排序,然后和二进制数字对应起来。
根据字符集内字符的多少,会确定用几个字节来编码。
每种编码都限定了一个明确的字符集合,叫做被编码过的字符集(Coded Character Set),这是字符集的另外一个含义。
通常所说的字符集大多是这个含义。
二、有哪些字符集?ASCII:American Standard Code for Information Interchange,美国信息交换标准码。
目前计算机中用得最广泛的字符集及其编码,由美国国家标准局(ANSI)制定。
它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。
ASCII字符集由控制字符和图形字符组成。
在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。
所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。
奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1。
偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
ISO 8859-1:ISO 8859,全称ISO/IEC 8859,是国际标准化组织(ISO)及国际电工委员会(IEC)联合制定的一系列8位字符集的标准,现时定义了15个字符集。
汉字编码字符集
汉字编码字符集汉字编码字符集是指用于表示和存储汉字的一套编码系统。
在计算机领域,为了能够准确地表示和处理汉字,人们设计了多种不同的汉字编码字符集。
本文将介绍几种常见的汉字编码字符集,包括GB2312、GBK、Unicode以及UTF-8。
一、GB2312GB2312是中国国家标准局于1980年发布的一种汉字编码字符集,是最早被广泛使用的汉字字符集之一。
GB2312字符集包含了7445个汉字和682个非汉字字符,采用双字节表示每个字符。
其中,第一个字节的范围是0xB0至0xF7,第二个字节的范围是0xA1至0xFE。
GB2312字符集主要适用于简体中文。
二、GBK随着计算机技术的发展和汉字数量的增加,GB2312字符集的容量已经无法满足需求。
为了解决这个问题,国家标准局于1995年发布了GBK字符集,它是对GB2312字符集的扩充和改进。
GBK字符集兼容GB2312字符集,同时加入了21003个汉字,总计包含了21886个汉字。
GBK字符集同样采用双字节表示每个字符,第一个字节的范围是0x81至0xFE,第二个字节的范围是0x40至0xFE。
GBK字符集支持简体中文和繁体中文。
三、UnicodeUnicode是一种国际标准字符集,旨在为全球所有字符提供唯一的编码。
Unicode采用16位的编码方案,可以支持最多65536个不同的字符。
不仅包括了各个国家语言的文字,还包括了数学符号、技术符号、图形符号等。
Unicode字符集为各种语言的文字提供了一个统一的编码标准。
四、UTF-8UTF-8是一种可变长度的Unicode编码方案,更好地解决了存储效率和兼容性的问题。
UTF-8使用1至4个字节来表示一个字符,根据不同的字符而变化。
对于单字节的字符,编码和ASCII码相同,兼容ASCII码。
对于多字节的字符,第一个字节的高位标识了字节数。
UTF-8字符集可以表示Unicode字符集中的所有字符。
在计算机系统中,为了使不同的系统能够正确地处理汉字编码,一般需要统一选择一种字符集来使用。
计算机字符集
西欧语言的字符集
详细描述
ISO 8859-1是一种单字节字符集,主要支持西欧语言的字符编码,包括英语 、法语、德语、意大利语、西班牙语等。它是最早的国际标准字符集之一, 广泛应用于网页和文档处理等领域。
Macintosh字符集
总结词
苹果公司开发的字符集
详细描述
Macintosh字符集是苹果公司为Mac OS操作系统开发的一种多字节字符集,支持包括中文、日文、 韩文等东亚语言的字符编码。它使用Unicode编码方案,是现代计算机系统中常用的字符集之一。
UTF-16采用固定长度的编码方式,每个字符的编 码长度为2或4个字节,适合对内存占用要求较高 的场景。
UTF-8是目前使用最广泛的编码方式,它采用可 变长度的编码方式,每个字符的编码长度可以是 1~4个字节,适应了不同语言字符的编码需求。
UTF-32采用固定长度的编码方式,每个字符的编 码长度为4个字节,适合对精度要求较高的场景。
IBM字符集
总结词
IBM公司开发的字符集
详细描述
IBM字符集是IBM公司为自身产品开发的一种多字节字符集,支持包括多种语言字符编码,如英语、法语、德 语、意大利语、西班牙语、中文、日文、韩文等。它广泛应用于IBM公司的软件产品中,也受到其他软件系统 的支持。
THANKS
谢谢您的观看
字符集的分类与特点
单字节字符集
每个字符只占用一个字节,通常用于表示英文字 符和数字。常见的单字节字符集包括ASCII、ISO 8859系列等。
可变长编码字符集
这种字符集的特点是每个字符可以占用不同数量 的字节。UTF-8就是一种可变长编码字符集,它 根据不同的字符使用不同的编码长度。
多字节字符集
计算机字符集
55
7
56
8
57
9
58
:
59
;
60
<
61
=
62
>
63
?
64
@
65
A
66
B
67
C
68
D
69
E
70
F
71
G
72
H
73
I
74
J
75
K
76
L
77
M
78
N
79
O
80
P
81
Q
82
R
83
S
84
T
85
U
86
V
87
W
88
X
89
Y
90
Z
91
[
92
\
93
]
94
^
95
_
96
`
97
a
98
b
99
c
100
d
101
e
102
f
103
GB2312的编码范围是0xA1A1-0x7E7E,去掉未定义的区域之后可以理解为实际编码范围是0xA1A1-0xF7FE。
上面这句有误,应该说GB2312的每一个汉字由两个字节构成,其中每一个字节的范围都在0xA1~0xFE,正好每一个字节都有94个编码范围,与区位码个数完全对应。
EUC-CN可以理解为GB2312的别名,和GB2312完全相同。
GBK的整体编码范围是为:高字节范围是0×81-0xFE,低字节范围是0x40-7E和0x80-0xFE,不包括低字节是0×7F的组合。
国际标准超大字符集
国际标准超大字符集国际标准超大字符集(International Standard Super Large Character Set,简称ISSCS)是指一种包含大量字符的标准字符集,用于支持各种语言文字的编码和显示。
随着全球信息交流的日益频繁,各种语言文字的编码和显示需求也越来越迫切,因此国际标准超大字符集的重要性日益凸显。
国际标准超大字符集的制定旨在统一各种语言文字的字符编码,使得不同语言文字之间可以互相兼容、交换和显示。
目前,Unicode是国际上通用的字符编码标准,它包含了超过13万个字符,涵盖了几乎所有已知的语言文字。
Unicode采用了统一的编码方案,为每个字符分配了唯一的编码值,从而实现了不同语言文字之间的互通。
国际标准超大字符集的应用范围非常广泛,涉及到计算机、互联网、移动通信、电子设备等各个领域。
在计算机领域,各种操作系统、编程语言、数据库系统等都已经全面支持Unicode编码,确保了不同语言文字的正确显示和处理。
在互联网领域,各种网页、邮件、即时通讯等应用也都已经普遍采用Unicode编码,实现了全球范围内的信息交流和交换。
国际标准超大字符集的制定和应用对于促进各种语言文字的交流和传播具有重要意义。
它不仅可以消除语言文字障碍,还可以促进不同文化之间的交流和理解。
在全球化背景下,国际标准超大字符集的作用将会越来越重要,为世界各国的信息交流和文化交融提供了重要支撑。
总的来说,国际标准超大字符集的出现和应用,标志着人类文明进入了一个全新的阶段。
它为各种语言文字的编码和显示提供了统一的标准,为全球信息交流和文化交流提供了有力支持。
相信随着科技的不断发展,国际标准超大字符集将会发挥越来越重要的作用,为构建一个更加和谐、包容的世界做出更大的贡献。
数据库字符集类型
数据库中常用的字符集类型有以下几种:
ASCII:ASCII(American Standard Code for Information Interchange)是美国标准信息交换码,用于表示英语字符的编码标准。
ASCII 字符集包含128 个字符,包括字母、数字、标点符号等。
UTF-8:UTF-8(Unicode Transformation Format-8)是一种针对Unicode 字符集的可变长度字符编码方案。
UTF-8 支持包括中文、日文、韩文等各种字符,是目前最常用的字符集之一。
UTF-8 中的字符可以使用1 到4 个字节表示,英文字符占用一个字节,中文字符占用三个字节。
UTF-16:UTF-16 是Unicode 字符集的一种编码方案,采用16 位编码表示字符。
UTF-16 中的字符可以使用2 个或 4 个字节表示,英文字符占用 2 个字节,中文字符占用 4 个字节。
GBK:GBK(GuoBiao Kuozhan)是国家标准扩展码的简称,是对汉字进行编码的字符集标准。
GBK 包含了GB2312 字符集的全部字符,并增加了许多繁体字和生僻字。
Big5:Big5 是繁体中文的字符集标准,广泛应用于台湾、香港等地区。
Big5 字符集可以表示繁体中文字符,不包含简体中文字符。
ISO-8859-1:ISO-8859-1(又称Latin-1)是国际标准化组织制定的字符集标准,包含了西欧各国所需的字符。
各个字符集关系
各个字符集关系字符集是计算机中用来表示和存储字符的编码方案。
不同的字符集拥有不同的字符映射表,即将字符映射到特定的二进制代码上。
在计算机科学中,有许多不同的字符集,如ASCII、Unicode、UTF-8等。
本文将详细介绍各个字符集之间的关系。
首先,ASCII(美国标准信息交换码)是最早的字符集之一。
它使用7位二进制代码来表示128个字符,包括英文字母、数字和特殊字符。
ASCII标准定义了每个字符的二进制代码和对应的显示符号。
ASCII编码被广泛应用于美国和英语系国家。
然而,ASCII的局限性在于它只能表示英文字符和一些常见的特殊符号,无法表示其他国家的字符集。
为了解决这个问题,ISO(国际标准化组织)提出了ISO-8859字符集系列。
ISO-8859字符集通过扩展ASCII,使用8位二进制代码表示256个字符。
ISO-8859字符集包括多种变种,如ISO-8859-1(Latin-1)、ISO-8859-2(Latin-2)等,每个变种针对不同的语言和地区。
然而,随着国际化的发展,ISO-8859字符集仍然无法满足全球多语言的需求。
为此,国际化组织提出了Unicode字符集。
Unicode字符集旨在成为全球统一的字符编码方案,能够包含世界上所有的字符。
Unicode使用16位二进制代码来表示字符,它定义了每个字符的唯一编号,称为码点(code point)。
Unicode的码点范围非常广阔,可以涵盖几乎所有的字符。
然而,使用16位二进制代码会造成存储和传输的浪费。
为此,发展了多种Unicode的字符编码方案,如UTF-8、UTF-16和UTF-32。
UTF-8是一种变长的字符编码方案,使用8位二进制代码表示字符。
UTF-8的编码规则如下:-对于ASCII字符,使用7位二进制代码与ASCII完全兼容。
-对于非ASCII字符,使用多个字节表示。
编码的首字节是非零的,使用剩余的7位二进制代码来表示字符。
汉字编码常用的字符集
汉字编码常用的字符集
1. GB2312,GB2312是中国国家标准简化汉字字符集,于1980年发布。
它包含了6763个常用汉字和682个非汉字字符,使用双字节编码,其中包括了简体中文的基本字符。
2. GBK,GBK是GB2312的扩展字符集,于1995年发布。
它兼容GB2312,并增加了近两万个汉字和符号。
GBK使用双字节编码,其中包括了简体中文的扩展字符。
3. GB18030,GB18030是中国国家标准的多字节字符集,于2000年发布。
它兼容GB2312和GBK,并增加了更多的汉字和字符,包括繁体中文和一些少数民族文字。
GB18030使用单字节、双字节和四字节编码。
4. Unicode,Unicode是国际标准字符集,旨在涵盖地球上所有的字符。
Unicode采用统一的编码方式,为每个字符分配唯一的编码值。
其中,汉字统一采用了CJK统一汉字扩展A(CJK Unified Ideographs Extension A)和CJK统一汉字扩展B(CJK Unified Ideographs Extension B)等多个扩展区。
5. UTF-8,UTF-8是一种可变长度的Unicode编码方式,它可以表示任意Unicode字符。
UTF-8使用1到4个字节来表示不同的字符,其中包括了汉字。
这些字符集在不同的环境下使用,常见的应用包括操作系统、编程语言、文本编辑器、网页浏览器等。
使用不同的字符集可以满足不同的需求,如支持不同语言的文字显示和输入。
字符集(Characterset)
字符集(Characterset)字符编码:是指将计算机的⼆进制编码与某个抽象字符集合⼀⼀对应的规则.常见字符集名称:ASCII字符集(7bit)、GB2312字符集(2B)、BIG5字符集(2B)、GB18030字符集(4B)、Unicode字符集等。
计算机要准确的处理各种字符集⽂字,需要进⾏字符编码,以便计算机能够识别和存储各种⽂字。
[GB2312 字符集]内容: GB2312收录简化汉字及⼀般符号、序号、数字、拉丁字母、⽇⽂假名、希腊字母、俄⽂字母、汉语拼⾳符号、汉语注⾳字母,共7445 个图形字符。
其中包括6763个汉字,其中⼀级汉字3755个,⼆级汉字3008个;包括拉丁字母、希腊字母、⽇⽂平假名及⽚假名字母、俄语西⾥尔字母在内的682个全⾓字符。
特点:因为未收录繁体中⽂字,只在中国⼤陆和新加坡获⼴泛使⽤,[BIG5 字符集]由台湾财团法⼈信息⼯业策进会和五间软件公司创⽴,故称⼤五码。
Big5字符集共收录13,053个中⽂字,该字符集在中国台湾使⽤。
尽管Big5码内包含⼀万多个字符,但是没有考虑社会上流通的⼈名、地名⽤字、⽅⾔⽤字、化学及⽣物科等⽤字,没有包含⽇⽂平假名及⽚假名字母。
[GB18030 字符集]内容:GB 18030字符集标准解决汉字、⽇⽂假名、朝鲜语和中国少数民族⽂字组成的⼤字符集计算机编码问题。
该标准的字符总编码空间超过150万个编码位,收录了27484个汉字,覆盖中⽂、⽇⽂、朝鲜语和中国少数民族⽂字。
满⾜中国⼤陆、⾹港、台湾、⽇本和韩国等东亚地区信息交换多⽂种、⼤字量、多⽤途、统⼀编码格式的要求。
并且与Unicode 3.0版本兼容,填补Unicode扩展字符字汇“统⼀汉字扩展A”的内容。
并且与以前的国家字符编码标准(GB2312,GB13000.1)兼容。
[Unicode字符集(统⼀码、万国码)]跨语⾔、跨平台UTF-32:4B,UTF-16:2B,UTF-8:1B-4B 可变长度(前缀码)[UTF-8(前缀码)设计原理]# 字节字符的最⾼有效⽐特永远为0。
汉字字符集编码
汉字字符集编码
汉字字符集编码是指将汉字转换为计算机可以使用的编码方案,常用的汉字字符集编码方案有GBK、GB2312、UTF-8等。
以下是一些常见的汉字字符集编码及其用途:
1. GBK:GBK编码是将GB2312字符集扩展到5位,用于存储大部分中文汉字。
GBK编码在Windows和MacOS操作系统中广泛使用,也被许多中文应用(如网页、电子书等)所支持。
2. GB2312:GB2312编码是一种基于UTF-8的字符集编码方案,用于存储中文字符。
与UTF-8相比,GB2312在某些情况下可能会出现编码错误,但比UTF-8更稳定。
3. UTF-8:UTF-8是一种无符号多字节编码方案,可以表示任意汉字。
UTF-8编码在中文字符的存储和传输方面都是最好的选择,但在一些情况下可能会出现编码错误。
4. ASCII: ASCII编码是一种单字节编码方案,用于存储只有字符和符号。
虽然ASCII编码可以表示所有的中文字符,但在传输和存储时可能会出现编码错误。
在实际应用中,选择合适的汉字字符集编码方案取决于具体需求和设备。
汉字编码字符集
汉字编码字符集
汉字编码字符集是用于将汉字编码为计算机可以处理的二进制形式的字符集。
中国国家标准《信息交换用汉字编码字符集·基本集》已于1981年5月发布实施,它规定了汉字信息交换用的基本图形字符及其二进制编码,收汉字6763个。
这个基本集是按照字位分组、以8位二进制编码表示的,每个汉字的码长为8位、16位或24位。
这些编码是按照字位排列的,每个汉字的码长为8位、16位或24位,其编码空间分别为2^8、2^16和2^24。
这种编码方式可以满足不同系统之间的信息交换需求。
随着计算机技术的不断发展,汉字编码字符集也在不断扩展和完善。
例如,GB 2312标准收录了6763个汉字,其中一级汉字3755个,二级汉字3008个。
此外,GB 2312还收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。
总之,汉字编码字符集是计算机处理汉字的重要基础,它的发展和完善也为汉字在计算机中的处理提供了更加便利和高效的方式。
计算机字符集
由于GB2312原始编码与ASCII编码的字节有重叠,现在通行的GB2312编码是在原始编码的两个字节上各加128修改而形成。例如:汉字“啊”,编号为16区01位。它的原始编码为0x3021,通行编码为0xB0A1。
如果不另加说明,GB2312常指这种修改过的编码。
291DGS组分隔符
301ERS记录分隔符
311FUS单位分隔符
ASCII码对照表
ASCII码
键盘
ASCII码
键盘
ASCII码
键盘
ASCII码
键盘
27
ESC
32
SPACE
33
!34Leabharlann "35#
36
$
37
%
38
&
39
'
40
(
41
)
42
*
43
+
44
'
45
-
46
.
47
/
48
0
49
1
50
2
51
3
52
4
53
5
54
IBM的个人计算机和工作站操作系统不使用它们所有的EBCDIC编码。相反的,它们使用文本的工业标准编码,ASCII码。转化程序允许不同的操作系统从一种编码到另一种编码的转化。
也可参见统一的字符编码标准。Name=earandmouthCName=听说接口Site=searchEnterpriseVoiceCategory=Def=
GB2312将所收录的字符分为94个区,编号为01区至94区;每个区收录94个字符,编号为01位至94位。GB2312的每一个字符都由与其唯一对应的区号和位号所确定。例如:汉字“啊”,编号为16区01位。
汉字字符集
汉字字符集
汉字字符集,又称为汉字编码集,是计算机中用于表示和存储汉字信息的一套编码体系。
它是信息技术和中文信息处理领域的基础,对于实现汉字的输入、输出、存储、传输和检索等功能至关重要。
汉字字符集的发展历程可以追溯到20世纪80年代初期,当时计算机中主要使用的是ASCII编码,只能表示128个或256个字符,无法涵盖大量的汉字。
因此,随着计算机技术的不断发展和普及,对汉字编码的需求也日益增长。
汉字字符集主要包括两个部分:汉字内码和汉字字形码。
汉字内码是用于计算机内部存储和处理的编码,通常采用双字节或四字节的编码方式,如GB2312、GBK、GB18030等。
而汉字字形码则是用于显示和打印汉字的编码,通常采用矢量图形或点阵图形的方式表示,如TrueType、OpenType等。
汉字字符集的标准化对于汉字信息处理的规范化和国际化具有重要意义。
目前,国际标准化组织(ISO)已经制定了一系列汉字编码标准,如ISO/IEC 10646(又称为Unicode),它包括了世界上几乎所有的字符,包括汉字,为汉字的国际交流和合作提供了便利。
总之,汉字字符集是汉字信息处理的基础,它的发展和应用推动了中文信息技术的发展和普及,也为全球信息交流和合作提供了更加广阔的空间。
随着技术的不断进步和创新,汉字字符集将继续发挥着越来越重要的作用。
常用字符集
常用字符集字符集,也称作字符编码、字体编码,它是由大量的字符组成的集合,用来表示数据的一种编码方式。
字符集是一种标准,可以定义和表示特定的字符。
字符集定义了特定码位表示字符,不仅包括字母数字以及标点符号,还有一些特殊字符,如表情符号等。
常用字符集主要有ASCII、Unicode、GBK、GB2312等。
ASCII是美国标准信息交换码,全称是“美国信息交换标准码”,是计算机最早采用的字符编码,用来表示英文字符和一些数字和符号,可以表示256个字符,只包括英文字母和一些特殊符号。
Unicode是国际标准组织创建的一种标准,用于建立文本编码。
它在互操作性方面表现良好,可以容纳各种文字,包括汉字。
Unicode 可以表示65536个字符,是一种宽字符集,能够表示中文、日文、韩文等语言的文字。
GBK是一种国家标准的字符集,它是对Unicode的一种拓展,由国家互联网信息中心制定的一种汉字信息交换编码,是中国最完整的汉字字符集,可以表示21300余个汉字及6763个汉字的组合,同时也包括一些常见的拉丁字母和符号。
GB2312是中国标准字符集,由国家标准总局于1980年制定,有一定的兼容性和可移植性,仅有汉字,共有6763个汉字及符号,被广泛用于中文编码。
字符集的应用范围非常广泛,它经常被用于文本处理、排版、信息存储和交换,是计算机文本处理的基础。
正确选择一种字符集,能够显著提高文本处理的效率,改善信息处理的质量。
字符集的发展及完善对人类的信息处理技术的进步发挥了重要作用,也为计算机信息处理提供了重要的基础。
国家在不断强调计算机中文字符集的研究和发展的重要性,以满足计算机应用的实时需求。
字符集是当今计算机信息处理技术不可缺少的一部分,它被广泛应用于电子邮件、文本资料库、网页等信息处理领域。
经过改进和发展,它也可以用于语音信息处理、视频信息处理和分析等方面,使技术发展变得更加多样化。
未来,字符集的研究和发展将继续推动计算机信息处理技术,发展出更加完善及先进的字符集体系,以满足用户对信息交流和处理的需要。
几种常见字符集与字符编码
⼏种常见字符集与字符编码字符集的概念 字符(Character)是各种⽂字和符号的总称,包括各国家⽂字、标点符号、图形符号、数字等。
⽽字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同。
常⽤字符集 ASCII字符集、GB2312字符集、GBK字符集、 USC-3字符集、Unicode字符集等。
字符编码的概念 字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某⼀对象(例如:⽐特模式、⾃然数序列、8位组或者电脉冲),以便⽂本在计算机中存储和通过通信⽹络的传递。
常⽤字符编码 ASCII编码、GB2312编码、GBK编码、UFT-8编码等字符编码。
注意:不要把字符集和字符编码两者弄混淆。
虽然他们有些同名,⽐如ASCII有字符集也有ASCII的字符编码,他们是两个不同的概念。
下⾯我们详细讲解⼏种常⽤的字符集和字符编码1 ASCII字符集和ASCII编码 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的⼀套电脑编码系统。
它主要⽤于显⽰现代英语,⽽其扩展版本EASCII则可以勉强显⽰其他西欧语⾔。
它是现今最通⽤的单字节编码系统(但是有被Unicode追上的迹象),并等同于国际标准ISO/IEC 646。
ASCII字符集:主要包括控制字符(回车键、退格、换⾏键等);可显⽰字符(英⽂⼤⼩写字符、阿拉伯数字和西⽂符号)。
ASCII编码:将ASCII字符集转换为计算机可以接受的数字系统的数的规则。
使⽤7位(bits)表⽰⼀个字符,共128字符;但是7位编码的字符集只能⽀持128个字符,为了表⽰更多的欧洲常⽤字符对ASCII进⾏了扩展,ASCII扩展字符集使⽤8位(bits)表⽰⼀个字符,共256字符。
ASCII的最⼤缺点是只能显⽰26个基本拉丁字母、阿拉伯数⽬字和英式标点符号,因此只能⽤于显⽰现代美国英语(⽽且在处理英语当中的外来词如naïve、café、élite等等时,所有重⾳符号都不得不去掉,即使这样做会违反拼写规则)。
字符集知识点总结
字符集知识点总结字符集是计算机中用来表示各种字符的编码集合,它定义了字符与数字之间的映射关系。
在计算机中,所有的数据都是以一定的编码形式存储的,而字符集就是用来规定字符的编码方式的。
字符集的不同会导致不同的编码规则,这也就决定了在不同的字符集下,同一个字符可能会有不同的编码。
在计算机领域中,常见的字符集包括ASCII、Unicode和UTF-8等,它们在字符编码的范围、编码方式以及支持的语言上都有不同的特点。
下面将分别介绍这三种字符集的知识点。
ASCIIASCII(American Standard Code for Information Interchange)是最早的字符集,它使用一个字节(8位)来表示一个字符,共有128个字符编码,包括了英文大小写字母、数字、标点符号等。
ASCII字符集是由美国国家标准协会(ANSI)提出的,并在1963年首次发布,是一种用于显示设备、通信设备以及计算机系统中的字符编码。
ASCII字符集只能表示基本的英文字母、数字和标点符号,不支持其他语言文字的编码,因此在国际化的应用场景中存在很大的局限性。
另外,由于ASCII字符集只使用了7位二进制编码,所以在计算机中常常将一个ASCII字符用一个字节(8位)来表示,这样会浪费掉一个比特位,不够经济。
Unicode为了解决ASCII字符集无法满足国际化应用的需求,Unicode字符集被提出并开发。
Unicode的编码范围远远超过了ASCII,它可以表示世界上几乎所有的文字和符号。
Unicode字符集采用不同的编码方案,如UTF-8、UTF-16和UTF-32等,其中最常用的是UTF-8。
Unicode字符集中的每个字符都有一个独一无二的编码,而且能够支持世界上所有语言的文字。
其编码范围超过了1个字节,可以使用2个或更多字节来表示一个字符。
由于Unicode编码较为复杂,在实际应用中常常采用UTF-8编码来存储和传输数据。
数据库的字符集格式
字符集字符集定义了数据库中可以存储的字符范围和编码方式。
它指定了每个字符由多少位表示以及如何将这些位解释为字符。
常见的字符集•UTF-8:一种可变长度的编码,广泛用于 Web 和移动应用程序。
•UTF-16:一种固定长度的编码,通常用于 Windows 系统。
•UTF-32:一种固定长度的编码,用于存储大量字符。
•GBK:一种双字节字符集,用于简体中文。
•BIG5:一种双字节字符集,用于繁体中文。
格式格式描述了如何将字符存储在数据库中。
它指定了字符的排序顺序、字符大小写以及如何处理特殊字符。
常见的格式•Unicode:一种国际标准,定义了所有语言和脚本的字符。
•ASCII:一种 7 位编码,用于英语字母、数字和一些符号。
•EBCDIC:一种 8 位编码,主要用于 IBM 系统。
选择字符集和格式选择字符集和格式时需要考虑以下因素:•存储的数据类型:需要存储哪些语言和字符。
•应用程序兼容性:应用程序是否需要特定的字符集或格式。
•性能:不同的字符集和格式对查询和更新操作的性能影响。
•数据完整性:确保字符集和格式与预期的数据相匹配以避免数据损坏。
示例以下示例创建了一个名为users的表格,使用 UTF-8 字符集和 Unicode 格式:CREATE TABLE users (id INT NOT NULL AUTO_INCREMENT,name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,email VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci);在该示例中,name和email字段使用 UTF-8 字符集和 Unicode 格式,允许存储各种语言和字符。
1位、字节、字符、字符集
1、位(bit):数据存储的最小单位。
每个二进制数字0或者1就是1个位;2、字节(byte):8个位构成一个字节;即:1byte(字节)=8bit(位);1 KB = 1024 B(字节);1 MB = 1024 KB;(2^10 B)1 GB = 1024 MB;(2^20 B)1 TB = 1024 GB;(2^30 B)3、字符(char):a、A、中、+、*、の......均表示一个字符;一般utf-8编码下,一个汉字字符占用3个字节;一般gbk编码下,一个汉字字符占用2个字节;4、字符集:即各种各个字符的集合,也就是说哪些汉字,字母(A、b、c)和符号(空格、引号..)会被收入标准中;5、编码:规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定就叫做“编码”。
(其实际是对字符集中字符进行编码,即:每个字符用二进制在计算中表示存储);通俗的说:编码就是按照规则对字符进行翻译成对应的二进制数,在计算器中运行存储,用户看的时候(比如浏览器),在用对应的编码解析出来用户能看懂的;(1)标准ASCii字符集:有96个打印字符,和32个控制字符组成;一共96+32=128个;用7位二进制数来对每1个字符进行编码;而由于7位还还不够1个字节,而电脑的内部常用字节来用处理,每个字节中多出来的最高位用0替代;0 000 0000....0 0 1111111..127;从0----127,来表示128个ACSii编码;比如:字符'A'--在内部用0100 0001(65)来表示;字符'a'---在内部用0110 0001(97)来表示;注意:'10'在计算器内部是没有编码的,因为它是字符串,而不是单个字符。
可以分别对1,0字符编码存储;(2)扩展ASCii字符集:将标准的ASCii最高位1,得到十进制代码128---255(1 000 0000----1 111 1111);所以字符集一共有0---255,256个字符;(3)gb2312字符集:所有汉字字符在计算机内部采用2个字节来表示,每个字节的最高位规定为1【正好与标准ASCii字符(最高位是0)不重叠,并兼容】,不支持繁体字;所以:gb2312表示汉字的编码为:[129--255][129--255](两个字节,每个字节最高位是1);小于127的字符,与ASCii编码相同;(4)gbk字符集:gb2312的扩充,兼容gb2312,除了收录gb2312所有的字符外,还收录了其他不常见的汉字、繁体字等;gbk中字符是一个或两个字节,单字节字符00--7F(0---127)这个区间和ASCII是一样的;双字节字符的第一个字节是在81--FE(129--254)之间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
6
飞刀, 飞刀,又见飞刀
UTF-8 是unicode的8位编码方式,是一种变长多 字节编码,这种编码可以用1、2、3个字节表 示一个unicode字符,AL32UTF8,UTF8、UTFE是 UTF-8编码字符集
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
14
数据库字符集
国家字符集: 用以存储NCHAR, NVARCHAR2, NCLOB等类型数 据 国家字符集实质上是为oracle选择的附加字符 集,主要作用是为了增强oracle的字符处理能 力,因为NCHAR数据类型可以提供对亚洲使用 定长多字节编码的支持,而数据库字符集则不 能。国家字符集在oracle9i中进行了重新定义, 只能在unicode编码中的AF16UTF16和UTF8中选 择,默认值是 AF16UTF16
16
数据库字符集
可以查询以下数据字典或视图查看字符集设置 情况 nls_database_parameters 、props$、 v$nls_parameters 查询结果中NLS_CHARACTERSET表示字符集, NLS_NCHAR_CHARACTERSET表示国家字符集
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
22
客户端字符集
NLS_LANG 参数格式 NLS_LANG=LANGUAGE_TERRITORY.CHARACTERSET Language: 显示oracle消息,校验,日期命名 Territory :指定默认日期、数字、货币等格式 Client character set :指定客户端将使用的字符集 例如: NLS_LANG=AMERICAN_7ASCII AMERICAN是语言,AMERICA是地区,US7ASCII是客户端字符 集
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
2
飞刀, 飞刀,又见飞刀
字符编码方案 单字节编码 单字节7位字符集,可以定义128个字符,最常 用的字符集为 US7ASCII 单字节8位字符集,可以定义256个字符,适合 于欧洲大部分国家 例如:WE8ISO8859P1(西欧、 8位、ISO标准8859P1编码 )
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
13
数据库字符集
字符集 用来存储CHAR, VARCHAR2, CLOB, LONG等类型 数据 用来标示诸如表名、列名以及PL/SQL变量等 用来存储SQL和PL/SQL程序单元等
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft 15
数据库字符集
讨论: 1、什么情况下用CHAR,NCHAR? 2、如何决定数据库字符集?
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
5
飞刀, 飞刀,又见飞刀
unicode 编码 Unicode 是一个涵盖了目前全世界使用的所有 已知字符的单一编码方案,也就是说Unicode为 每一个字符提供唯一的编码。UTF-16是unicode 的16位编码方式,是一种定长多字节编码,用 2个字节表示一个unicode字符,AF16UTF16是 UTF-16编码字符集。
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
3
飞刀, 飞刀,又见飞刀
多字节编码 变长多字节编码 某些字符用一个字节表示,其它字符用两个或 多个字符表示,变长多字节编码常用于对亚洲 语言的支持,例如日语、汉语、印地语等 例如:AL32UTF8(其中AL代表ALL,指适用于所 有语言)、 zhs16cgb231280
ORACLE字符集研究 ORACLE字符集研究
Dextrys Co., Ltd.
Kelson Cong DBA Team
飞刀, 飞刀,又见飞刀
什么是字符集 字符集就是按照一定的字符编码方案,对一组 特定的符号,分别赋予不同数值编码的集合。 Oracle数据库最早支持的编码方案是US7ASCII。 Oracle 的字符集命名遵循以下命名规则 : 即: <语言><比特位数><编码 > 比如: ZHS16GBK表示采用GBK编码格式、16位 (两个字节)简体中文字符集
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
19
数据库字符集
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
24
客户端字符集
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
20
数据库字符集
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
21
客户端字符集
客户端字符集定义了客户端字符数据的编码方 式,任何发自或发往客户端的字符数据均使用 客户端定义的字符集编码,客户端可以看作是 能与数据库直接连接的各种应用,客户端字符 集是通过设置NLS_LANG参数来设定的。
17
数据库字符集
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
18
数据库字符集
如何修改服务器端字符集 Alter database character set ZHS16GBK 此方法慎用! 千万不要通过修改PROPS$的方式修改 PROPS$ 新的字符集一定是老字符集的超集
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
10
查看字符集的工具:LBUILDER
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
8
Oracle8i 和oracle9i官方文档资料中备有子集-超 级对照表(subset-superset pairs),例如: WE8ISO8859P1是WE8MSWIN1252的子集。由于 US7ASCII是最早的Oracle数据库编码格式,因 此有许多字符集是US7ASCII的超集,例如 WE8ISO8859P1、ZHS16CGB231280、ZHS16GBK 都是US7ASCII的超集。
© Copyright, Dextrys Co., Ltd. Confidential and Proprietary Information. All Rights Reserved. Suzsoft
23
客户端字符集
客户端字符集设置方法 1)UNIX 环境 $NLS_LANG=“simplified chinese”_china.zhs16gbk $export NLS_LANG 编辑oracle用户的profile文件 2)Windows 环境 编辑注册表 HKEY_LOCAL_MACHINE-SOFTWARE-ORACLE-HOME0(9i) HKEY_LOCAL_MACHINE-SOFTWARE-ORACLEKEY_OraDb10g_home1(10g)