java规定字符采用每个字符占两个字节的Unicode编码,但是,比如我把"你a"输出到文件中,文件大小却是3个字节,这里就不明白了。还有字符在内存中占几个字节,采用什么编码呢?(手机发的写程序不方便一_一|)
------解决思路----------------------
字符在内存中占几个字节
根据你机器的编码方式不同占用不同
unicode占2字节
gbk占2字节 ASCII部分占一字节
uft-8是1-6的变长字节
public class CharLength {
public static void main(String[] args) throws UnsupportedEncodingException {
System.out.println(System.getProperties().getProperty("file.encoding"));
System.out.println("的a".getBytes("unicode").length);
System.out.println("的a".getBytes("gbk").length);
System.out.println("的a".getBytes("utf-8").length);
}
}
根据系统的默认编码来确定正确的字节长度
另外两个输出都是对默认编码的再编码,没有意义
我的机器默认编码方式是GBK
------解决思路----------------------
sry,不知道啊,看执行结果,不管什么内容
GBK再解码成Unicode,转换过程中数组前2位都多了2个字节,值是-2,-1,
和转换内容无关
是加的标识?
高手指点下