编码

1.编码表

1.定义

字符和计算机二进制的对应关系表,就是编码表

2.分类

  1. ascii

    一个字节中的7位就可以表示。对应的字节都是正数。0-xxxxxxx

  2. iso-8859-1

    拉丁码表 latin,用了一个字节用的8位。1-xxxxxxx 负数。

  3. GBK

    目前最常用的中文码表,2万的中文和符号。用两个字节表示,其中的一部分文字,第一个字节开头是1,第二字节开头是0

  4. GB18030

    最新的中文码表,目前还没有正式使用。

  5. unicode

    国际标准码表:无论是什么文字,都用两个字节存储。

​ java中的char类型用的就是这个码表。char c = ‘a’;占两个字节。

​ Java中的字符串是按照系统默认码表来解析的。简体中文版 字符串默认的码表是GBK。

​ 7.UTF-8

​ 基于unicode,一个字节就可以存储数据,不要用两个字节存储,而且这个码表更加的标准化,在每一个字节头加入了编码信息(后期到api中查找),3个字节表示中文

3.能识别中文的码表

GBK、UTF-8;正因为识别中文码表不唯一,涉及到了编码解码问题。

​ 对于我们开发而言;常见的编码 GBK UTF-8 ISO-8859-1

​ 文字—>(数字) :编码。 “abc”.getBytes() byte[]

​ (数字)—>文字 : 解码。 byte[] b={97,98,99} new String(b)

2.乱码解决

中文乱码出现的情况研究

注意点:乱码解决的办法是再编码再解码

但是如果是编码出错了,无法解决.如果是解码出错了,可以利用再编码再解码

  • 编码 解码 结果
  • GBK utf8 不可以(GBK2个字节,utf83个字节)
  • GBK ISO8859-1 可以
  • utf8 GBK 有时可以
  • utf8 ISO8859-1 可以
  • ISO8859-1 GBK 不可以(编码就出错了)
  • ISO8859-1 utf8 不可以(编码就出错了)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值