JAVA虚拟机文件编码参数 -Dfile.encoding
最近使用IDEA写东西发现调用系统cmd /k dir返回的字符串显示出来有很多乱码,明显是UTF8和GBK对中文的处理又出现差异。想了想windows采取了GBK编码,于是在IDEA的虚拟机运行参数加上-Dfile.encoding=GBK即可解决。-Dfile.encoding 解释:在命令行中输入 java,在给出的提示中会出现 -D 的说明:-D= # set a system
最近使用IDEA写东西发现调用系统cmd /k dir返回的字符串显示出来有很多乱码,明显是UTF8和GBK对中文的处理又出现差异。
想了想windows采取了GBK编码,于是在IDEA的虚拟机运行参数加上-Dfile.encoding=GBK即可解决。
-Dfile.encoding 解释:
在命令行中输入 java,在给出的提示中会出现 -D 的说明:
-D= # set a system property
-D 后面需要跟一个键值对,作用是设置一项系统属性
对 -Dfile.encoding=UTF-8 来说就是设置系统属性 file.encoding 为 UTF-8
那么 file.encoding 什么意思?字面意思为文件编码。
搜索 java 源码,只能找到 4 个文件中包含 file.encoding 的文件,
也就是说,只有四个文件调用了 file.encoding 这个属性。
在 java.nio.charset 包中的 Charset.java 中,这段话的意思说的很明确了。
简单说就是默认字符集是在 java 虚拟机启动时决定的,
依赖于 java 虚拟机所在的操作系统的区域以及字符集。
代码中可以看到,默认字符集就是从 file.encoding 这个属性中获取的。
更多推荐
所有评论(0)