java编码问题

pinitianjie 发布于 05/09 14:41
阅读 133
收藏 0

关于java编码问题,我是这样理解的,对吗?
 

.class文件的编码一定是UNICODE,jvm以UNICODE编码读入.class文件,在jvm所占用的内存中,数据的编码也一定是UNICODE的,这些都与虚拟机参数file.encoding无关。

String类的getBytes()方法会默认读取file.encoding所设置的编码,在调用该方法时,会将编码由UNICODE转换为指定的编码。

而且赞整个程序的运行生命周期内,Charset类的默认编码也是file.encoding所指定的值。

加载中
0
淘淘我的小宝宝
淘淘我的小宝宝

首先你要弄清楚编码和字节,.class文件就是字节内容。为什么要编码,是因为人类看不懂字节,需要展示人类可是识别的符号,比如中文。那么就要有个规则,一个中文字符对应几个字节,这就涉及到GBK,UTF8等的编码。在JVM内存,字符都是UNICODE编码,然后我们需要是使用某一种编码的时候就需要进行重新编码。

getBytes()获取字符的默认编码(系统)或者可以指定编码的字节内容。不同编码的转换其实就是对同一个字节内容的不同形式,有的2个字节标识一个字符,有的需要3个。

说到底计算机只是别01形式的字节码,中文等其他编码的转换都是一种规则。

返回顶部
顶部