char类型与字符编码

时间:2023-01-10 20:44:28

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
“汉“的Unicode字符编码的十六进制数据形式为0x6C49。

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)\":代表双引号字符