char是字符类型,Java语言对字符采用Unicode字符编码。
由于计算机的内存只能存储二进制数据,因此必须为各个字符进行编码。
所谓字符编码,是指用一串二进制数据来表示特定的字符。
1)ASCII字符编码(American Standard Code for Information Interchange-美国信息互换标准代码)
a)它是一套罗马字母编码。
b)它是现今最通用的单字节编码系统。
c)它实际上只用了1字节的7位存储字符。
d)一共能表示128(2的7次方)个字符。
例程:a的编码为0110 0001,相当于十进制整数97
2)ISO-8859-1字符编码(又称Latin-1,是国际标准化组织[ISO]为西欧语言中的字符制定的编码)
a)西欧语言字符编码
b)1个字节(8位)来为字符编码
d)与ASCII字符编码兼容。(所谓兼容,是指对于相同的字符,它的ASCII字符编码和ISO-8859-1字符编码相同)
3)GBK2312字符编码
a)它是一套简体中文字符编码。
b)共收录7 445个字符。(包括6 763个汉字和682个其他符号)
c)与ASCII字符编码兼容。
4)GBK字符编码
a)是GB2312的扩展。
b)共收录21 886个字符。(包括汉字区和图形符号区;汉字:21 003)
c)与GB2312字符编码兼容。
5)Unicode字符编码(由国际Unicode协会编制)
a)收录了全世界所有语言文字中的字符。
b)是一种跨平台的字符编码。
c)Unicode具有两种编码方案。
1)用2个字节(16位)编码,采用这个编码方案的字符集被称为UCS-2,Java语言采用该编码方案。
2)用4个字节(32位)编码(实际只用了31位,最高位必须为0),采用这个编码方案的字符集被称为UCS-4.
6)UTF字符编码(UCS Transformation Format)
背景:有些操作系统不完全支持16位或32位的Unicode字符编码。
a)UTF字符编码能够把Unicode字符编码转换为操作系统支持的编码
b)它包括UTF-8(采用1个字节为单元对UCS进行编码),UTF-7,UTF-16
例程为UCS-2到UTF-8的字符编码转换方式
UCS-2字符编码(十六进制) | UTF-8字节流(二进制) |
0000-007F | 0xxxxxxx |
0080-07FF | 110xxxxx 10xxxxxx |
0800-FFFF | 1110xxxx 10xxxxxx 10xxxxxx |
0x6C49在0x0800-FFFF之间,用第四行的模板:1110xxxx 10xxxxxx 10xxxxxx
将其写为二进制数据形式为:0110 110001 001001 用此代替模板中的x,11100110 10110001 10001001
7)Java语言的转义字符
a)\n:(next)换行字符,将光标定位在下一行的开头。
b)\t:(tab)垂直制表符,将光标移到下一个制表符的位置。
c)\r:(ready)回车,将光标定位在当前行的开头;不会跳到下一行。
d)\\:代表反斜杠字符
e)\':代表单引号字符
f)\":代表双引号字符