UTF-8格式的文本文件程序读取异常

最近在windows服务器上直接创建并手打输入配置参数,比如设置概率0.6,然后用java程序打开读取该参数,在本地linux环境下测试完全正常,但是一放到服务器上,就报NotNumber错误,查看了下代码:double percent = Double.paseDouble(FileUtil.readTxt(...)),发现没有任何问题,百思不得其解。于是把从文件中读取到的参数打印日志,结果日志显示的内容令我大跌眼镜,读取到的文件内容居然是?0.6。

这个问题没搞懂,暂时先放一边,因为之前有过配置json文件的经验,于是我决定用这个配置也用json格式文本,将0.6改为{"percent":0.6}后不出所料,能够正常读取。

换了一种方式解决了这个问题后,我还是对那个bug有点好奇,网上搜了一下大牛们的简介,得到比较一致的答案是,微软对UTF-8格式的文本文件进行了“特殊”处理,在每个文件开头添加了0xefbbbf,于是程序读取该文件的时候?就出来了。这个说法似乎说得通,但是为什么我用json格式的字符串就能正确的读取呢?why?

猜你喜欢

转载自www.cnblogs.com/chen-proj/p/10929152.html
今日推荐