Java程序运行时参数file.encoding和sun.jnu.encoding释意说明

前言:
由于很多场景file.encoding和sun.jnu.encoding总是被一起提及
file.encoding 直译:文件编码

参数说明:

1、file.encoding 不主动配置的情况下,默认使用的是操作系统的编码

2、sun.jnu.encoding 影响类加载时类名的编码

(1):Charset.defaultCharset() Java环境中非常关键的编码设置
(2):URLEncoder.encode(String) Web环境中最常遇到的编码使用
(3):com.sun.org.apache.xml.internal.serializer.Encoding 影响对无编码设置的xml文件的读取
(4):javax.print.DocFlavor 影响打印的编码 

小结:
1、文件操作涉及到字节操作和字符操作,在字符操作的时候应该明确指定操作的编码,而不是依赖默认配置,从而避免很多的不确定性,降低外部依赖(耦合)
2、启动应用是应当带上虚拟机参数:

java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -jar xxx.jar
或
java -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 -Djava.security.egd=file:/dev/./urandom -jar xxx.jar

3、如果是解析XML文件等,可能需要调整为-Dfile.encoding=GBK

注意:
Eclipse或IDEA在编译或运行时,会默认增加编译、运行时参数,会影响代码效果,建议在命令行验证如上测试代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值