什么是字符编码?(Java)
初学笔记(十四)
引言
对于8种基本数据类型来说:
其中byte,short,int,long,float,double,boolean,这7种类型计算机表示起来
比较容易,因为他们都是数字。其中布尔类型只有两个值true和false,实际上
true和false分别在C++中对应的是1和0,1为true,false为0。
对于char类型来说计算机表示起来比较麻烦,因为char对应的是文字,每一个国家
的文字不一样,文字不能直接通过“自然算法”转换成二进制。这个时候怎么办?
字符编码诞生了。
什么是字符编码?
字符编码是人为定义的一套转换表。
在字符编码中规定了一系列的文字对应二进制。
字符编码其实就是一本字典,该字典中描述了文字与二进制之间的对照关系。
字符编码的发展过程:
起初的计算机是不支持文字的,只支持科学计算。后来随着九三级的发展,计算机开始支持文字,最先支持的是英文,英文对应的字符编码方式是:ASCII码。
ASCII码采用1byte进行存储,因为英文字母是26个。
'a' --(采用ASCII码进行编码)-> 01100001
01100001 --(采用ASCII码进行解码)-> 'a'
如果编码和解码采用的不是同一个编码方式,会出现乱码。
'b' ---> 98
'c' ---> 99...
'a' ---> 97
'A' ---> 65
'B' ---> 66
...
'0' ---> 48 (这个'0'不是那个0,是文字'0')
'1' ---> 49
随着计算机语言的发展,后来国际标准组织制定了ISO-8859-1编码方式,
又称为latin-1编码方式,向上兼容ASCII码。但不支持中文。
后来发展到亚洲,才支持中文,日文,韩文....
中文这块的编码方式:GB2312<GBK<GB18030 (容量的关系)
以上编码方式是简体中文。
在java中,java语言为了支持全球所有的文字,采用了一种字符编码方式
叫做unicode编码。unicode编码统一了全球所有的文字,支持所有文字。
具体的实现包括:UTF-8 UTF-16 UTF-32....
需要记住:
ASCII('a'是97 'A'是65 '0'是48...)
ISO-8859-1(latin-1)
GB2312
GBK
GB18030
Big5
unicode(utf8 utf16 utf32)
- java集合详解(看完秒懂)集合是什么?
- Java中的属性和字段有什么区别
- Java 方法扔出异常与返回错误值有什么不同
- 什么是Java的反射机制
- Java与C/C++有什么区别
- 【枚举高阶】Java中枚举的本质是什么
- Java 线程(一):什么是线程
- Java中实现"请求转发"和"重定向",有什么区别...
- 一个java源文件中是否可以包含多个类(内部类除外),有什么限制?
- Java中equas和==的区别是什么?
- java 中的instanceof用法详解及instanceof是什么意思(推荐)
- 什么是java future模式
- 值传递和引用传递是什么?【java】
- Java - 事务的ACID是指什么?
- 什么是stub? JAVA 存根
- JAVA中的几种基本数据类型是什么,各自占用多少字节。
- java中的字符编码
- Mysql中的数据类型对应于Java中什么数据类型
- Java的Integer和int有什么区别
- 当我问java问题的时候我在问些什么