java编码问题:报错 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

java编码问题:报错

kun坤 2020-06-07 13:43:25 88

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

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

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

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

Java
分享到
取消 提交回答
全部回答(1)
  • kun坤
    2020-06-07 13:43:29

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

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

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

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程