java dfile.encoding_JAVA虛擬機文件編碼參數 -Dfile.encoding

最近使用IDEA寫東西發現調用系統cmd /k dir返回的字符串顯示出來有很多亂碼,明顯是UTF8和GBK對中文的處理又出現差異。

想了想windows采取了GBK編碼,於是在IDEA的虛擬機運行參數加上-Dfile.encoding=GBK即可解決。

ac12cefb535a9da982ace2cdec84d6a8.png

-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 這個屬性中獲取的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值