Charset.defaultCharset() 获取的语言环境的编码到底是哪里来的 ?

Charset.defaultCharset()  获取的语言环境的编码到底是哪里来的  ?


写个单元测试验证下:

public class Test {
	public static void main(String args[]){
		System.out.println(Charset.defaultCharset());
	}
}
执行结果是GBK:

立马懵逼了。对不起前任公司啊,可能给你写错了一行代码(这里是可能,到我离职也没有问题啊)。文章的最后我解释一下

问了一下度娘:是eclipse默认编码的问题;修改既可以。


但是这就是问题了:线上是放在tomcat中的。没有eclipse。你说Charset.defaultCharset() 读取是哪里的语言环境的编码呢?

补充:tomcat没有默认语言编码。可以设置conf/server.xml文件中Connector 标签;设置<Connector URIEncoding="utf-8" />;

再问度娘:

可以修改环境变量:

变量名:JAVA_TOOL_OPTIONS变量值:-Dfile.encoding=UTF-8

执行单元测试


貌似可以结贴了:

Charset.defaultCharset()默认读取还是配置的语言编码;也是就是系统的;

我以前的代码没有暴露出来的错误,可能是我们的运维小哥给系统设置的语言环境是UTF-8;


以上都不是重点:我想说的是:关注在系统和系统之间交互的时候,要注意语言编码;正确选择合适的代码。


引申:以上都不是重点:下篇博客我会介绍加解密的一些简单知识。



阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁义锐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值