碰到了groovy中文章筹码问题,搞了蛮久
问题如下:
如果把文件保存为GBK,首次访问时会乱码, 这时对groovy脚本做一个touch动作,后续处理居然就不乱码了!
如果将文件保存为utf8(ultraEdit下),则直接报解析错误。
最终尝试将文件保存为utf8-无bom格式,中文显示一直正常。
概念解释:
UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行,可能会引起错误。(在Linux下看时,文件开头多了个<feff>)Window下用Notepad++写php文件,编码是UTF-8时就带有这种BOM。用Notepad++时选择以UTF-8无BOM格式编码,解决这个问题
参考文章:
1. http://immmmm.com/display-problems-caused-by-the-utf-8-bom.html 通过修改groovy1.7.2源码解决中文乱码
2. http://philix.iteye.com/blog/704046 UTF8 BOM引起的显示异常问题