windows文本文件 utf-8 编码格式 分为2种。utf-8 和 utf-8无 bom格式 。
今天java 项目中,maven resource 无论如何 config.properties文件 某个属性值替换不掉。。。
试了N遍 发现 有个curse ,总是 处于第一行的 配置项替换不了。。。
So。。 开始怀疑是 文件编码了,于是,新建了文本文件 (windows自带notepad),另存为utf-8 编码。以为问题解决了,但是问题依旧!!!
所以开始debug代码,spring的 PropertyPlaceholderConfigurer 里面hashtable 解析的配置项对 替换不了的那个配置项xxx明明前面带了 一段看不懂的字符,哦问题明白了,一定是文件编码 前面加了隐形字符。
之后自己下了 notepad++,用notepad++工具的编码帮忙识别是否是 真的utf-8编码的文本文件。
果不其然~ 问题发现了,显示 config.properties 编码为 UTF-8 有 BOM 编码。。god~!!!
改为UTF-8 无BOM 格式 编码后,替换正常了~~~
告诫我们不能相信肉眼所见,要看到机器看到的角度 识别问题。一个好的编辑器 也太重要了。
没有解决不了的问题,做问题的终结者 ^_^