当前位置: 代码迷 >> J2SE >> 新手请问Java中关于字符长度的有关问题
  详细解决方案

新手请问Java中关于字符长度的有关问题

热度:141   发布时间:2016-04-23 19:43:19.0
新手请教Java中关于字符长度的问题
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

------解决思路----------------------
引用:
Quote: 引用:
为什么采用unicode编码时,字符长度总会多出两个字节来呢?

为什么呢


sry,不知道啊,看执行结果,不管什么内容
GBK再解码成Unicode,转换过程中数组前2位都多了2个字节,值是-2,-1,
和转换内容无关
是加的标识?
高手指点下
  相关解决方案