1、说到编码,最大的问题就是乱码了,为啥会有乱码呢 ?
因为字符在编码和解码的时候,用的编码字典不一致,从而导致了乱码,常见的编码有ASCII、GBK、GB2312、UTF-8、UTF-16等。
2、为啥需要编码呢?
因为计算机的存储是二进制的,也就是01010这种形式的,这样一些中文、法文、俄文等,就需要编码解码才可以达到效果。
3、java中数据类型的转换是啥?
bit(位)、byte(字节)、char(字符)
1byte == 8bit 一位二进制称为一个bit,一个byte的取值范围是-128~127
1char == 2byte char是字符类型,取值范围是0~65535
1char == 16bit 一个char是16个二进制位
1字母 == 1byte == 8bit
1汉字 == 2byte == 16bit
char可以表示中文,但是byte不可以;
char可以表示一个整数,不可以表示负数,byte可以表示-128到127的数值;
char、byte、int对于英文字符,可以相互转换;
1Kb == 1024bit 1KB ==1024byte ==1024*8bit
4、java和unicode的关系?
Unicode包含两个概念,一个是字符集,一个是编码方式,utf-8是Unicode的其中一种编码方式。
JVM默认编码是GBK,也就是底层编码环境是GBK编码。String是Unicode的,当读取外部的数据,如果没有指定的解码方式,它会根据JVM默认编码来解码外部数据,即从JVM默认编码来解码外部数据。当然也可以指定需要的解码方式。
Unicode将世界所有的符号纳入其中,每一个符号分配一个独一无二的编码,是一个很大的集合,可以容纳100多万个字符
5、使用不同的编码解码方式,可以负负得正吗?
当然不行,因为在编码解码的过程中,如果没有对应的字典,可能出现丢失数据的情况,这样就没有办法负负得正了。