开发者社区> 问答> 正文

java编码问题:报错

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

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

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

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

展开
收起
kun坤 2020-06-07 13:43:25 395 0
1 条回答
写回答
取消 提交回答
  • 首先你要弄清楚编码和字节,.class文件就是字节内容。为什么要编码,是因为人类看不懂字节,需要展示人类可是识别的符号,比如中文。那么就要有个规则,一个中文字符对应几个字节,这就涉及到GBK,UTF8等的编码。在JVM内存,字符都是UNICODE编码,然后我们需要是使用某一种编码的时候就需要进行重新编码。

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

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

    2020-06-07 13:43:29
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载