阅读完后:
- 什么是计算机编码【了解】
- ASCII 编码介绍【了解】
- Unicode 编码介绍【了解】
- Java 使用的默认编码 Unicode【了解】
前言
我们开始学习 Unicode 和 ASCII 码,由于计算机底层只能处理二进制数据,一个字符在计算机中是以 0 和 1 构成的序列的形式来存储的。要想使用字符,就需要对字符进行编码,将字符映射到它的二进制形式的过程称为编码( encoding)。字符有多种不同的编码方式,编码表(encoding scheme) 定义该如何编码每个字符。比较常用的两种编码为 ASCII 编码与 Unicode 编码。大多数计算机采用 ASCII 码(美国标准信息交换码),Unicode 属于国际标准字符集。
ASCII 码介绍
ASCII 是用来表示英文字符的一种编码规范,它是表示所有大小写字母、数字、标点符号和控制字符的 8 位编码表。ASCII 编码可以表示的最大字符数是 255 个,它对于英文是没有问题的,但其他国家的语言,255 个字符编码就显然不够用了。此时 Unicode 的出现解决了各种语言编码的问题。
Unicode 介绍
Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。可以处理所有国家的语言文字。以满足跨语言、跨平台进行文本转换、处理的要求。
Java 中 char 使用 16 位的 Unicode 字符集作为编码方式。Unicode 码是由 Unicode 协会建立的一种编码方案,它收录了世界上所有国家语言文字的字符。
Unicode 与 ASCII 码的关系
Unicode 码将 ASCII 码包括在内,从 ‘\u0000’ 到 ‘\u007F’ 对应 128 字符 ASCII 字符。
常用字符的 ASCII 码
字符 | 十进制编码值 | Unicode 值 |
---|---|---|
‘0’ ~ ‘9’ | 48 ~ 57 | \u0030 ~ \u0039 |
‘A’ ~ ‘Z’ | 65 ~ 90 | \u0041 ~ \u005A |
‘a’ ~ ‘z’ | 97 ~ 122 | \u0061 ~ \u007A |
Java 默认 Unicode 编码
Java 程序中,可以使用像 ‘X’、‘1’ 和 ‘$’ 这样的 ASCII 字符,也可以使用 Unicode 码。
例如,下面的语句是等价的,代码如下:
char myChar = 'A'; // 字符 A 的 Unicode 是 0041
char myChar = '\u0041'; // 字符 A 的 Unicode 是 0041
两条语句都将字符 A 赋值给 char 类型变量 myChar。
由于计算机底层只能处理二进制数据,要想使用字符,就需要对字符进行编码,Java 中 char 使用16位的 Unicode 字符集作为编码方式,Unicode 属于国际标准字符集,收录了世界上所有国家语言文字的字符。
如果对字符编码感兴趣可以到维基百科(https://zh.wikipedia.org/wiki/Unicode 字符列表)查询。
在本章我们学习了:
- 计算机比较常用的两种编码为 ASCII 编码与 Unicode 编码
- ASCII 包含大小写字母、数字、标点符号和控制字符的 8 位编码表
- Unicode 包含 ASCII 并且收录了世界上所有国家语言文字的字符
- Java 默认 Unicode 编码
接下来,我们开始学习 Java 的 boolean 类型:Java零基础18-Java 的 boolean 类型