XiaoXiao_计算机字符编码(字集码)笔记

本文介绍了字符编码的基础知识,包括字符编码的作用和历史背景。详细阐述了GB 2312、BIG 5和GBK三种汉字编码标准,如GB 2312收录6763个汉字,BIG 5主要用于繁体中文,GBK是对GB 2312的扩展并兼容GB 2312。
摘要由CSDN通过智能技术生成
字符编码(英语:Character encoding)

我个人认为字符编码观点(不做规范参考):

        众所周知,机器语所有的信息最终都是一个二进制串,每一个二进制位(bit)01两种状态表示。

        而字符编码是为方便对每个字符信息一个集合体,以便于编程人员的对字符显示后期处理。为了方便在不同平台的信息传递的准确性,所以产生统一字符编码的规范编码。

字符编码简介(信息来至百度百科):
        字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。

        在计算机技术发展的早期,如ASCII(1963年)和EBCDIC(1964年)这样的字符集逐渐成为标准。但这些字符集的局限很快就变得明显,于是人们开发了许多方法来扩展它们。对于支持包括东亚CJK字符家族在内的写作系统的要求能支持更大量的字符,并且需要一种系统而不是临时的方法实现这些字符的编码。

字符编码:
字符编码
编码名称 字节数 范围 时间 说明
ASCII

(1 byte) 

00 - 7F

1961 年提出

1967 年发表

1967 年完善

      这套编码规则是由美国定制,一共规定了128个字符的编码,其中有 96 个可打

字符,包括常用的字母、数字、标点符号等,另外包括 32 个控制字符。

        0~31 控件字符 48~57 为数字 65~90 97~122 分别为大写字母和小写字母 相差32

ISO-8859-1

EBCDIC

(1 byte)

00 - FF

1964 年

        这套编码规则由ISO组织制定,是 ASCII 的扩展字符编码,是对 ASCII 后 127~255

范围进行编码。

ANSI

MBCS

(2 byte)

0000-FFFF

 

        无论是ASCII码还是ISO-8859-1码,都无法对拥有几万个的汉字进行编码,于是产生

了用于显示本国语言,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5,

 JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称

ANSI 编码在简体中文系统下,ANSI 编码代表 GB-2312 编码,在日文操作系统下,

ANSI 编码代表 JIS 编码。

GB-2312

GB-2312-80

(2 byte)

A1A1-FEFE

1980 年发布

1981 年使用

        GB2312也是ANSI编码里的一种,对ANSI编码最初始的ASCII编码进行扩充,为了满

足国内在计算机中使用汉字的需要,中国国家标准总局发布了一系列的汉字字符集国家标

准编码,统称为GB码,或国标码。

GB K

(2 byte)

8140-FEFE

 

        GBK即汉字内码扩展规范,K为扩展的汉语拼音中“扩”字的声母。英文全称(Chinese

 Internal Code Specification)。GBK编码标准兼容GB2312,共收录汉字21003个、符号

883个,并提供1894个造字码位,简、繁体字融于一库

GB-18030 (1~4 byte) 2000 年发布

        GB18030全称汉字内码扩展规范,是现在最新的内码字集于2000年发布,并于200

1年强制执行,包含了中国大部分少数民族的语言字符,收录汉字数超过70000余个

Big-5

(2 byte)

8140-FEFE

1984 年发布

        由台湾五大厂商宏碁、神通、佳佳、零壹以及大众一同制定了一种繁体中文编码方

案,因其来源被称为五大码,英文写作Big5,后来按英文翻译回汉字后,普遍被称为

五码。是在台湾、香港与澳门地区,使用的是繁体中文字符集。

Unicode

(2 byte)

0000-FFFF

 

        所有字符都转为16位。为了解决各国字符编码的兼容性,称为万国码。缺点效率不

高,浪费内存。

UTF-16 (2 byte)  

        UTF-16是UNICODE的具体实现,16即16位,UTF-16即是这个来由,定义了

UNICODE字符在计算机中的存储方式,UTF-16同样使用了两个字节来表示任何字符,

这样使得操作字符串非常高效,这也是java把UTF-16作为字符在内存中存储的格式的

重要原因。

UTF-8 (1~6 byte)  

        优化 Unicode ,UTF-16可以根据不同的符号自动选择编码的长短。比如英文字母可

以只用1个字节就够了。

UTF-7      
       

ASCII 码表

Bin

(二进制)

Dec

(十进制)

Hex

(十六进制)

缩写/字符     字    符    

Bin

(二进制)

Dec

(十进制)

Hex

(十六进制)

缩写 字符
0000 0000 0 00 NULL 空字符 0000 0000 69 45 E 大写字母E
0000 0001 1 01

SOH

标题开始 0000 0000 70 46 F 大写字母F
0000 0010 2 02

STX

正文开始 0100 0111 71 47 G 大写字母G
0000 0011 3 03

ETX

正文结束 0100 1000 72 48 H 大写字母H
0000 0100

4

04

EOT

传输结束 0100 1001 73 49 I 大写字母I
0000 0101 5 05

ENQ

请求 0100 1010 74 4A J 大写字母J
0000 0110 6 06

A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值