Java300StudyNote(9)-unicode和GBK,UTF-8,UTF-16,图解各种字符集之间的关系、Java内部使用的字符集、字符集的兼容性问题、乱码问题

1、字符集关系图

这里写图片描述

2、Java内部字符集

Java内部采用的是Unicode字符集,所以在Java程序中使用中文作为变量名是可行的

3、字符集的兼容性问题

上图表示BIG5兼容ISO8859-1,GB2312兼容ISO8859-1,GBK兼容GB2312,其他的依次类推,但是一定要注意,不再同一条线上的字符集是不相互兼容的,例如BIG5就不兼容GB2312就会出现所谓的乱码

4、乱码问题

当一个字符集采用了不同的编码和解码字符集,且编码和解码的字符集不兼容时就会出现所谓的乱码,例如使用GBK进行编码的网站,在UTF-8进行解码的页面上就会出现中文乱码的情况

5、字符集简介

4.1、ISO8859-1

西欧的字符集,一个字节表示一个字符,一个字节为8位,也就是说ISO8859-1可以表示2的8次方 = 256个字符,所以用它来表示西欧字符已经足够

4.2、BIG5

台湾的大五码,用于表示台湾的字符集

4.3、GB2312

大陆使用最早的,最广的简体中文字符集,又称国标码,2个字节表示一个字符,所以2的16次方,GB2312可以表示65536个字符,足以表示我们的简体中文

4.4、GBK

GB2312的扩展,可以表示繁体中文

4.5、GB18030

最新GBK的扩展,可以表示中华民族56个民族的语言和字符

4.6、Unicode(UTF-8,UTF-16)

全球通用的字符集
Unicode字符集分为UTF-8,UTF-16
在实际应用中,Unicode字符的显示任然采用2个字节一个字符,但在实际存储的时候采用了变长存储的形式,西欧的字符在存储的时候依旧占一个字节阿拉伯文等占2个字节中文3个字节,在UTF-16中文存储占2个字节,可以大大减少存储空间,但具体退出时间未知。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值