码迷,mamicode.com
首页 > 编程语言 > 详细

java 中一个char包含几个字节

时间:2017-06-23 23:01:20      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:问题   iso   英文   设置   nic   word   sdn   如何   平台   

背景

??char包含几个字节可能记得在上学的时候书上写的是2个字节,一直没有深究,今天我们来探究一下到底一个char多少个字节?

Char

??char在设计之初的时候被用来存储字符,可是世界上有那么多字符,如果有1个字节,那么就意味着只能存储256中,显然不合适,而如果有两个字节,那么就可以存储65536种。这个数量符合大多数国家的语言字符的个数。于是Java团队默认使用unicode作为编码,一个char作为2个字节来存储。 
??这里就有两个问题了? 
????1. java的char一定会有两个字节吗? 
????2. 中文字符可以存储在char里面吗? 
??先来回答第一个问题。char一定是两个字节吗?不是的,这个跟我们选用的字符编码有关,如果采用”ISO-8859-1”编码,那么一个char只会有一个字节。如果采用”UTF-8”或者“GB2312”、“GBK”等编码格式呢?这几种编码格式采用的是动态长度的,如果是英文字符,大家都是一个字节。如果是中文,”UTF-8”是三个字节,而”GBK”和”GB2312”是两个字节。而对于”unicode”而言,无论如何都是两个字节。 
??然后再回答第二个问题,对于一个char如果用”ISO-8859-1”来存储的话,肯定无法存储一个中文,而对于”UTF-8”、“GB2312”、“GBK”而言大多数中文字符是可以存储的。

总结

??char的长度和是否能存储中文字符是和编码格式有关的。对于我们在编码的时候如果跨平台编码时,应该在编码、解码的时候设置对应的格式,防止由于编解码导致的异常。

 

考点:剑指Offer----第一个只出现一次的字符

java 中一个char包含几个字节

标签:问题   iso   英文   设置   nic   word   sdn   如何   平台   

原文地址:http://www.cnblogs.com/lchzls/p/7071862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!