Java中char的字节数

以前一直以为char占一个字节,后来发现远没这么简单。Java中char的字节数,和编码有关。使用UTF-8,英文字符占1个字节,中文占3个字节。下面在是在Ubuntu中测试的结果:

 

  1. public static void main(String[] args) throws IOException  
  2.       
  3.     String chnStr "中文" 
  4.     System.out.println("length of two Chinese character: " chnStr.getBytes("UTF-8").length );  
  5.     String engStr "en" 
  6.     System.out.println("length of two English character: " engStr.getBytes("UTF-8").length );  
  7.  

输出:

 

 

  1. length of two Chinese character:  
  2. length of two English character:  

在网上流传这样一个面试题:Java中一个中文char的字节数是?答案为不确定(2,3,4),跟编码有关。下面这段程序可以证明这个答案:

 

 

  1. public static void main(String[] args) throws IOException       
  2.     String chnStr "华" 
  3.     System.out.println("length of one Chinese character in gbk: chnStr.getBytes("GBK").length );  
  4.     System.out.println("length of one Chinese character in UTF-8: chnStr.getBytes("UTF-8").length );  
  5.     System.out.println("length of one Chinese character in Unicode: chnStr.getBytes("UNICODE").length );  
  6.  
输出

 

 

  1. length of one Chinese character in gbk:  
  2. length of one Chinese character in UTF-8:  
  3. length of one Chinese character in Unicode: 4  
posted @ 2015-02-06 14:41  Wishmeluck  阅读(456)  评论(0编辑  收藏  举报