java基础知识


常见的编码表

ASCII: 美国标准信息交换码

用一个字节的7位可以表示

ISO-8859-1:拉丁码表。欧洲码表

用一个字节的8位表示

GB2312:中国的中文编码表

GBK:中国的中文编码表升级,融合了更多的中文文字符号

Unicode:国际标准码,融合了多种文字

所有文字都用两个字节来表示,java语言使用的就是unicode

UTF-8(8-bit Unicode Transformation Format):最多三个字节表示一个字符


GBK



编码/解码

编码:字符串转换为字节数组

String -->byte[] : String.getBytes();

解码:字符数组变为字符串

Byte[] -->String : new String(byte [] );//使用的是默认编码

new String(byte [] ,charsetName)



字符流的出现:当处理文本数据的时候,单独分离出来的字符流

字符流的由来:
在计算机中, 要让计算机识别生活正的数据,用010101识别生活中的数据
在外国,用10101来识别英文字母,有一个 一一对应的标码表,即ASCII(美国标准编码表)



在中国,为了让计算机能够识别中文,1010跟中文对应的表就是 gb2312 , 这张表里收集了几千个汉字,但汉字博大精深, 后来又扩容 扩容的表就是GBK,

把各个国家的文字全部重新编排 包含在一张编码表里面,就是unicode (国际标准编码表) 后期经过优化 就是UTF-8表,在unicode 里面无论什么字符 都是 2个字节表示(16个二进制位)

UTF-8出现的又来(为什么优化)
一个英文字母用一个字节就可以表示,没有必要用两个字节表示
一个字节装不下的字符 就用2个字节
2个字节装不下的  就用3个字节(3个肯定够)


字符流:
一个中文汉字(例如“我”),在GB2312编码表 中能被识别;在GBK中也能被识别,在UTF-8中也能被识别,但他们对应的数据是不一样的,所以当我们想在一台(GBK编码的系统)电脑上读取另一台电脑(UTF-8编码的系统)上的文件的时候 就没法读取了。为了解决这个问题,java在流技术上 基于字节流产生了一个字符流。

字符流的好处: 在内部融合编码表,在读取文件的时候,到底是用UTF-8编码表还是用GBK的编码表读取文件   可以自决定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值