教妹学Java(十):Unicode字符集简介

简介: 教妹学Java(十):Unicode字符集简介

“二哥,上一篇文章中提到了 Unicode 字符集,说 Java 中的

char 类型之所以占 2 个字节,是因为 Java 使用的是 Unicode 字符集而不是 ASCII 字符集,我有点迷,想了解一下,能细致给我说说吗?”


“当然可以啊。”


Unicode 是一种国际通用的标准字符编码,能够代表世界上大多数的书面语言。在 Unicode 字符集出现之前,已经存在不少字符集了,比如说:


ASCII,美国标准信息交换码,一共规定了 128 个字符的编码,比如空格 SPACE 是 32(二进制 00100000),大写的字母 A 是 65(二进制 01000001)。这 128 个符号(包括 32 个不能打印出来的控制符号),只占用了一个字节的后面 7 位,最前面的一位统一规定为 0。


ISO 8859-1,为西欧而生。英语用 128 个符号编码就够了,但是用来表示其他语言,128 个符号是不够的。比如,在法语中,字母上方有注音符号,它就无法用 ASCII 码表示。于是,一些欧洲国家就决定,利用字节中闲置的最高位编入新的符号。比如,法语中的 é 的编码为 130(二进制 10000010)。这样一来,这些欧洲国家使用的编码体系,可以表示最多 256 个符号。


GB2312,简体中文编码方式。使用两个字节表示一个汉字,所以理论上最多可以表示 256 x 256 = 65536 个符号,因为汉字就多达 10 万个左右,一个字节只能表示 256 种符号,肯定是不够的。


它们引出了两种问题:


一种特定的码只能只能针对一种地区的语言标准。

不同字符集的编码对应的字节数不同,有的一个,有的两个,有的更多,不够统一。

世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。为什么电子邮件常常出现乱码?就是因为发信人和收信人使用的编码方式不一样。


如果有一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,那么乱码问题就会消失。这就是 Unicode,就像它的名字都表示的,这是一种所有符号的编码。


Unicode 是一个很大的集合,现在的规模可以容纳 100 多万个符号。每个符号的编码都不一样,比如,U+0639表示阿拉伯字母 Ain,U+0041 表示英语的大写字母 A,U+4E25 表示汉字严。具体的符号对应表,可以查询 unicode.org,或者专门的汉字对应表。


Unicode 的一个字符占用 2 个字节,所以 Java 的 char 类型也占用 2 个字节。


本篇文章为《教妹学Java》专栏的第十篇文章,是不是有趣得很?我相信你能感受的到,这可是全网独一份,我看到已经有人在模仿了。现在定价只需 9.9 元,9.9 元你连一杯奶茶都买不到,但却能买下二哥精心制作的专栏,据说 CSDN 已经考虑涨价了,毕竟已经卖出一百多份了。


我知道,购买专栏的同学都是冲着二哥的名声来的,毕竟二哥是 CSDN 的明星博主,哈哈。为表谢意,我再附送上个人微信(qing_gee),你有什么问题都可以来咨询。


相关文章
|
2月前
|
算法 Java PHP
「译文」Java 垃圾收集参考手册(一):垃圾收集简介
「译文」Java 垃圾收集参考手册(一):垃圾收集简介
|
6月前
|
Java 编译器
“高级Java注解的简介及应用“
“高级Java注解的简介及应用“
31 0
|
3天前
|
并行计算 Java 编译器
Java Lambda表达式简介
Java Lambda表达式简介
9 0
|
1月前
|
存储 Java uml
Java-UML类图简介
Java-UML类图简介
18 0
|
1月前
|
Oracle Java 关系型数据库
【问题】Cause: java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
【问题】Cause: java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK
|
6月前
|
存储 网络协议 Java
LDAP简介及Java、客户端连接
LDAP简介及Java、客户端连接
120 0
|
2月前
|
Java API
Java中的Lambda表达式简介及应用
【2月更文挑战第6天】本文将介绍Java中的Lambda表达式,探讨其基本概念、语法特点和应用场景。通过实际示例演示Lambda表达式在Java编程中的灵活运用,帮助读者更好地理解和应用这一强大的特性。
|
3月前
|
缓存 安全 算法
Java并发简介(什么是并发)
Java并发简介(什么是并发)
|
8月前
java202304java学习笔记第五十二天员工管理-文件上传-简介2
java202304java学习笔记第五十二天员工管理-文件上传-简介2
23 0
|
8月前
|
Java
Java-单例模式简介
Java-单例模式 在Java类的设计中,有时希望一个类在任何时候只能有一个实例,这时可以将该类设计为单例模式,要将一个类设计为单例模式,类的构造方法的访问修饰符应声明为private,然后在类中定义一个static方法,在该方法中创建类的对象。

热门文章

最新文章