Java的char是16位的unicode类型
Java的char是16位的unicode类型,中文也是,两个字节,但是如果用utf-8(一般系统默认)读取或者转换为字节数组,就会变成3个字节。 Unicode是字符集,UTF-8/UTF-16是编码规则,或者广义的Unicode就包括字符集和多种编码规则。也就是说字符集规定了每个字符的二进制代码,编码规则才规定了如何存储这些二进制代码。 然后utf-16有个大端序(Big Endian order)和小端序(Little Endian order)的问题(utf-8的更复杂,所以这也是最好不要在windows下编程的原因)。 在Java中,对于一个中文字符的char,getByte的结果,如果不指定编码规则,则 默认是UTF-8,一个中文3个字节 ,如果是 unicode或者utf-16,默认是4个字节,前两个字节0xFEFF表示大端序,0xFFEF表示小端序 ,如果 指定了utf-16be或者utf-16le,就是2个字节 , package IOTest; import javax.management.StandardEmitterMBean; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.nio.charset