字符编码表-字符串-字符-字节-字节数组理解

阅读更多

 

 

字符串是由一个一个的字符组成

每个字符按照编码表有一个对应的数字(编码表的作用)

编码查询:http://www.mytju.com/classcode/tools/encode_utf8.asp

每个字符直接赋值给整数则可以得到对应字符编码表中的数值

 

 

编码表:字符和数字之间的对应关系表

java中字符类型和整数类型可以互相转化

字符型常量以Unicode(ascii)编码形式存储,占用2个字节,

当字符赋值给整数,则在编码表中查到相应的数值赋值(对应关系)

当整数赋值给字符,则在编码表中查到相应的字符赋值

 

 

utf-8编码变长编码,1-4个字节表示一个字符,对单字节范围内字符仍然用一个字节表示,对汉字采用三个字节表示。

 

 

对于任何一个字符串-每个字符在字符编码表中对应一个十六进制数值 

 

“君”的unicode编码十六进制表示形式541b转换为二进制为 101010000011011一共8位,

按照utf-8的规则变成3个字节表示一个中文,则二进制表示为11000101  10010000 10011011,比unicode多出来的都是按照utf-8规则多出来的规则位置,

  转换为十六进制的变为:c5909b ,则放到字节数组中就变成3个字节的c5909b。

二进制对比:

utf-8:  11000101  10010000 10011011  -- c5909b

unicode:     101    010000   011011  -- 541b

 

参考:

 http://www.mytju.com/classcode/tools/encode_utf8.asp

 https://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html

 

 

 

 

 

字符和编码转换实例:

 

        String str = "ab君" ;

        for(int i=0;i 
  

 

你可能感兴趣的:(字符编码表-字符串-字符-字节-字节数组理解)