Java 中字符编码占用空间问题

Jun 14, 2016


下午在群里看到有人问 Java 中一个 char 占多少字节。 这不是很明显的两个字节嘛。 然后他又问,编码不一样的情况下空间不是会变化吗?
然后我就懵了。。

晚上找了一下资料,应该是这样的:

char 占两个字节,也就是UTF-16编码,毫无疑问。他说的那种不同编码的情况下应该是体现在String中。根据编码的不同,占用的 char 数组大小也不同,所以所占空间也就会变化。

那么再扩展一下,一个汉字用UTF-8编码要多少字节呢?答案是 3~4 个字节,没错,有的中文字符不够用 16 字节表示。。比如这个𠜎,不知道能不能显示出来。