栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

字符编码类型

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字符编码类型

1、ASCII码

大概是大家最熟悉的编码

ASCII全称“American Standard Code for Information Interchange”代表“美国信息交换标准代码”。ASCII字符编码提供了一种使用数字代码表示字符的标准方法,这些包括大写和小写英文字母、数字和标点符号。

ASCII用7位表示每个字符,其他键盘键也映射到标准ASCII值。ASCII码也可以用十六进制值表示。

由于ASCII使用7位,它只支持2^7,即128个值。即使支持8位值(256个字符)的扩展ASCII也没有包含足够的字符来准确地表示所有语言。因此,其他字符集,如Latin-1 (ISO-8859-1)、UTF-8和UTF-16通常用于需要更多字符的文档和web页面。

2、GB2312

GB2312编码是第一个汉字编码国家标准,由中国国家标准总局1980年发布,1981年5月1日开始使用。GB2312编码共收录汉字6763个,其中一级汉字3755个,二级汉字3008个。同时,GB2312编码收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。

由于要承载成千上万的汉字,GB2312码比ASCII要大上许多,有2字节,16位。

3、GBK编码

GBK编码,是对GB2312编码的扩展,共23940个码位。共收录汉字和图形符号21886个,其中汉字(包括部首和构件)21003个,图形符号883个。GBK编码支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG-5编码中的所有汉字(繁体字)。GBK编码方案于1995年12月15日正式发布,这一版的GBK规范为1.0版。

4、BIG-5

BIG-5码是通行于台湾、香港地区的一个繁体字编码方案,俗称“大五码 ”。它并不是一个法定的编码方案,存在着一些瑕疵,业界的评价也不高,但它 广泛地被应用于电脑业,尤其是国际互联网中,从而成为一种事实上的行业标 准。 

5、ANSI码

不同的国家和地区制定了不同的标准,由此产生了 GB2312(中国), BIG5(台湾), JIS(日本) 等各自的编码标准。 这些使用 2 个字节来代表一个字符的各种延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。 不同 ANSI 编码之间互不兼容。

ANSI码是对于各国编码方式的整合。ANSI分为两部分一部分是识别编码种类的识别码,一部分是各种编码方式的编码部分。

6、Unicode

我们都知道中文的字符肯定不止256个汉字,使用ASCII编码来处理中文显然是不够的,所以中国制定了GB2312编码,用两个字节表示一个汉字,碰到及其特殊的情况,还会用三个字节来表示一个汉字。GB2312还把ASCII包含进去了。同理,日文,韩文等上百个国家为了解决这个问题发展了一套自己的编码,于是乎标准越来越多,如果出现多种语言混合显示就一定会出现乱码。那么针对这种编码“乱象”,Unicode便应运而生了,其将所有语言统一到一套编码规则里。

毫无疑问这一工作量是巨大的。在 Unicode 中往后的字符可能就需要 3 个字节或者 4 个字节,甚至更多字节来表示了。这就导致了一些问题,计算机怎么知道你这个 2 个字节表示的是一个字符,而不是分别表示两个字符呢?这里我们可能会想到,那就取个最大的,假如 Unicode 中最大的字符用 4 字节就可以表示了,那么我们就将所有的字符都用 4 个字节来表示,不够的就往前面补 0。这样确实可以解决编码问题,但是却造成了空间的极大浪费,如果是一个英文文档,那文件大小就大出了 3 倍,这显然是无法接受的。

7、UTF-8

为了较好的解决 Unicode 的编码问题, UTF-8 和 UTF-16 两种当前比较流行的编码方式诞生了。当然还有一个 UTF-32 的编码方式,也就是上述那种定长编码,字符统一使用 4 个字节,虽然看似方便,但是却不如另外两种编码方式使用广泛。

UTF-8 是一个非常惊艳的编码方式,漂亮的实现了对 ASCII 码的向后兼容,以保证 Unicode 可以被大众接受。

UTF-8 是目前互联网上使用最广泛的一种 Unicode 编码方式,它的最大特点就是可变长。它可以使用 1 - 4 个字节表示一个字符,根据字符的不同变换长度。编码规则如下:

对于单个字节的字符,第一位设为 0,后面的 7 位对应这个字符的 Unicode 码点。因此,对于英文中的 0 - 127 号字符,与 ASCII 码完全相同。这意味着 ASCII 码那个年代的文档用 UTF-8 编码打开完全没有问题。

对于需要使用 N 个字节来表示的字符(N > 1),第一个字节的前 N 位都设为 1,第 N + 1 位设为0,剩余的 N - 1 个字节的前两位都设位 10,剩下的二进制位则使用这个字符的 Unicode 码点来填充。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031887.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号