900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java encoding.utf8.getbytes_String的getBytes()默认编码问题

java encoding.utf8.getbytes_String的getBytes()默认编码问题

时间:2022-10-30 13:18:33

相关推荐

java encoding.utf8.getbytes_String的getBytes()默认编码问题

我们学习java基础的时候.我们都知道在main方法中String的getBytes()方法如果不指定编码格式,默认是UTF-8的方法进行的编码.我们一直认为默认的编码格式就是UTF-8.直到我们学习了javaWeb.在Servlet中.我们通过getBytes()获取的是按照GBK进行编码的.至此我们就有了疑惑.这个getBytes()方法到底是怎么选择默认编码的.我们带着疑惑,去翻一下String的源代码.

[AppleScript]纯文本查看复制代码

继续跟进StringCoding的encode方法

[AppleScript]纯文本查看复制代码

从以上源码中可以看出是通过

[AppleScript]纯文本查看复制代码

来获取默认编码方式的.我们继续跟进.查看Charset的defaultCharSet()方法.

[AppleScript]纯文本查看复制代码

从以上源码中我们不难看出,不出异常的情况下.默认编码是由file.encoding决定的.我们分别在main方法和Servlet中去获取file.encoding去测试一下.

[AppleScript]纯文本查看复制代码

输出结果是

[AppleScript]纯文本查看复制代码

在Servlet中的测试代码:

[AppleScript]纯文本查看复制代码

输出结果是:

[AppleScript]纯文本查看复制代码

getBytes()方法的默认编码确实是跟file.encoding一致的.file.encoding是由谁决定的呢?网上很多流传说是跟当前文件的编码格式相同.那我们测试一下.

在idea中我们讲文件的编码格式改成GBK.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。