资管反应,一个头盔看不到,此头盔的资源配置在文件的第一项,并且使用工具加密后再解密,对比原始文件,发现第一项的配置不见了。
使用记事本或者UE查看第一项,未见有什么异常。从能正常加密的第二项拷贝数据,修改id放在第一项,问题依旧。
拷贝的方法也不行,说明应该不是格式问题或者大小写问题。
出错的总是在第一项,推测可能文件头有点问题。用gvim或者vc打开原始文件,发现文件首部有类似乱码的东西。
修改后保存,发现可以正确加解密了。
文件头类似乱码一样的东西,其实是BOM——“Byte Order Mark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/Little Endian),除此以外还可以标识编码(UTF-8/16/32)”。
用记事本“另存为”查看发现,出错的文件是UTF8编码的。而windows记事本在保存UTF8编码的文件时,会自动添加BOM,推测是资管某次编辑将此文件改为UTF8编码的,于是多出BOM造成工具无法正常解析文件进行加密。
单个文件要去除BOM,可以直接使用可以查看到BOM的编辑器(gvim/vc6等)修改文件首部的内容即可。或使用Sublime Text 2等编辑器的保存为不带BOM的格式。
但要注意到是,gvim也并非总是能看到:
对于较多文件的检查修改,可以使用File BOM Detector(免费,http://www.bryntyounce.com/filebomdetector.htm)。
资管在修改配置文件,尤其是部分读取方式较为严格的文件时,要特别注意文件头的问题。对现有的配置文件,用File BOM Detector进行检查。
参考链接
1.UTF-8、BOM、的问题 http://7567567.blog.51cto.com/706378/641744
2.File BOM Detector http://www.bryntyounce.com/filebomdetector.htm