【Java基础】编码问题

本文详细介绍了非Unicode编码,包括ASCII、ISO 8859-1、GB2312、GBK、GB18030和Big5。然后深入探讨了Unicode编码,特别是UTF-32、UTF-16和UTF-8的表示方式和特点。最后讨论了编码转换和乱码纠正的重要性。
摘要由CSDN通过智能技术生成

非Unicode编码

ASCLL

  • 美国规定了128个字符的二进制表示方法。计算机最小存储单位是byte,即8位。ASCII码最高位设置为0,其余7位表示字符,可看作0~127

ISO 8859-1 && Windows-1251

  • ISO 8859-1标准更早,使用更为广泛的是Windows-1521,基本相同,区别在于数字128~159中增加了可打印字符。很多啊应用程序中声明采用“ISO 8859-1”但解析是成就当做“Windows-1521”编码

GB2312

  • GB2313使用两个字节表示汉字。
  • 高位字节范围是0xA1~0xF7。[1016+1 , 1516+7] 即 [161,247] == [128+33, 247]
  • 低位字节范围是0xA1~0xFE。[161,254] == [128 + 33, 254]
  • 两个字节中,最高位都是1,如果是0,就认为是ASCII字符

GBK

  • GBK建立在GB2312基础上,向下兼容GB2312。GB3212编码的字符和二进制表示,在GBK编码里是完全一样的。
  • GBK同样使用两个字节表示
  • 高位字节范围0x81~0xFE [129,254]
  • 低位字节范围是0x40~0x7E和0x80 ~0xFE [64,126]和[128, 254]
  • 注:低位字节从0x40(64)开始的,即低位字节的最高位可能是0,在解析时,如果第一个字节最高位为1,那么就将下一个字节读进来一起解析为汉字

GB18030

  • GB18030向下兼容GBK
  • 使用变长编码,有的字符两个字节吗,有的四个字节。
  • 两字节编码中字节表示范围与GBK相同。
  • 四字节编码中
    • 第一个字节的值为0x81 ~ 0xFE,第二个字节的值为0x30 ~ 0x39,第三个字节的值为0x81~0xFE,第四个字节的值为0x30 ~ 0x39。、
  • 在解析时,如果第二个字节的范围是0x30 ~ 0x39就代表该值用四个字节表示,因为两个字节编码中第二个字节都比这个大。

Big5

  • Big5是针对繁体中文的,高位字节范围是0X81 ~ 0xFE,低位字节范围是0x40 ~ 0x7E 和 0xA1 ~ 0xFE

Unicode编码

  • Unicode给世界上所有字符都分配了一个唯一的数字编号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值