编程开发 > JAVA > 文章内容

java基础知识总结(132)

2016-6-22编辑:ljnbset

字符串的序列化(文字的编码方案)

 1) Stirng 字符串本质上是char[] 将char[] 转换成byte序列

  就是字符串的编码, 就是字符串的序列化问题

  char是16位无符号整数, 值是unicode编码

  str.getBytes("GBK")

  new String(byte[], "gbk")

  byte 流

 2) utf-16be 编码方案, 将16位char从中间切开为2个byte

  utf-16be 是 将unicode char[] 序列化为byte[] 的编码方案

  能够支持65535 个字符编码, 英文浪费空间

  char[] = ['A','B','中']

  utf16be = [00, 41, 00, 42, 4e, 2d]

 3) UTF-8 编码方案 采用变长编码 1~N方案, 其中英文1个byte

  中文3个byte

  char[] = ['A','B','中']

  utf8 = [41 42 e4 b8 ad]

  utf-8: 是将unicode 编码为 byte 序列的方案

  中:  4e2d = 0100111000101101

  e4 b8 ad = 11100100 10111000 10101101

             1110XXXX 10XXXXXX 10XXXXXX

   以0为开头的是 英文!(0~127)

   110 表示连续2字节表示一个字符

   1110 表示连续3字节表示一个字符

   11110 表示连续4字节表示一个字符

   每个数据字节以 10开头

 4) GBK 中国国标,支持20000+ 中日韩英, 英文1Byte编码, 中2Byte与unicode不兼容, 需要码表转换(散列表查询)

 char[] = ['A','B','中'] //4e2d

 GBK(GB2312): {41,42,d6,d0}

java基础知识总结(131)

热点推荐

登录注册
触屏版电脑版网站地图