`
iamzhongyong
  • 浏览: 796447 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

开发中遇到的编码问题

    博客分类:
  • java
阅读更多

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、使用不同的编码解码方式,可以负负得正吗?

当然不行,因为在编码解码的过程中,如果没有对应的字典,可能出现丢失数据的情况,这样就没有办法负负得正了。

 

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics