JAVA全系列 教程
3762个小节阅读:7090.5k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
ASCII
字符集表示了英文字母、数字、特殊字符、控制符,所有字符集的老祖宗,大家都会兼容它。但是一个字节能够表示256个状态,而ASCII
字符只用到128个,后面128个一直是空的。
于是有了ISO8859-1
, 别名叫latin-1
, 包含了256个字符。前128个字符与ASCII
中完全相同。后128个包括了西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。
随着我国的计算机普及,汉字的处理也有了我们自己的方案。那就是GB2312
,两个字节表示1个汉字。两个字节可以表示65536个状态,汉字再多也能全部包含。后来,又有了GBK
、GB18030
。
我国的台湾地区自己搞了一套显示繁体中文的大五码BIG5
。
全世界各个地方,都有自己的文字编码。由于不互通,经常造成乱码的问题。
如果有一种统一的字符集,将世界上所有语言字符都纳入其中,每一个字符都给予一个全球独一无二的编码,那么乱码问题就会消失。于是,全球所有国家和民族使用的所有语言字符的统一字符集诞生了,这就是Unicode
字符集。
Unicode
字符集是为了给全世界所有字符一个唯一的编码,“唯一”对应的英文为Unique,而编码的英文为code。
Unicode
采用了字符集和编码分开的策略。Unicode
之前,Unicode
诞生之前可以将字符集和字符编码混为一谈,而在Unicode
中必须严格区分开。
Unicode
字符集统一采用两个字节表示一个字符,包括英文字母。但是,由于英文占据互联网信息的绝大部分。真实存储和传输时,会造成极大的浪费;因此,目前主要采用UTF-8
编码来实现具体的存储和传输。UTF-8
是变长编码,用1-6个字节编码Unicode
字符。西欧字符仍然是1个字节,汉字3个字节。
字符型在内存中占2个字节,在Java中使用单引号来表示字符常量。例如'A'
是一个字符,它与"A"
是不同的,"A"
表示含有一个字符的字符串。
char
类型用来表示在Unicode
编码表中的字符。Unicode
编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。
【示例2-16】字符型演示
xxxxxxxxxx
char eChar = 'a';
char cChar ='中';
Unicode
具有从0到65535之间的编码,他们通常用从’\u0000’
到’\uFFFF’
之间的十六进制值来表示(前缀为u表示Unicode
)
【示例2-17】字符型的十六进制值表示方法
xxxxxxxxxx
char c = '\u0061';
Java 语言中还允许使用转义字符 ‘\’
来将其后的字符转变为其它的含义。常用的转义字符及其含义和Unicode
值如表2-6所示。
【示例2-18】转义字符
xxxxxxxxxx
char c2 = '\n'; //代表换行符
表2-6 转义字符 | ||
---|---|---|
转义符 | 含义 | Unicode值 |
\b | 退格(backspace) | \u0008 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\t | 制表符(tab) | \u0009 |
\“ | 双引号 | \u0022 |
\‘ | 单引号 | \u0027 |
\ | 反斜杠 | \u005c |
注意事项
以后我们学的
String
类,其实是字符序列(char sequence), 本质是char
字符组成的数组。
实时效果反馈
1. java中,如下关于字符的相关说法,错误的是:
A java采用了Unicode字符集
B Unicode字符集兼容了GBK
C Unicode字符集兼容了ASCII字符集
D Unicode采用了字符集和编码分开的策略。平时,编码一般使用UTF-8
答案
1=>B