今天遇到一个问题,有ultraedit编辑了一个java文件,上传到svn中。在linux服务器上重新部署此JAVA应用时,应用打包时日志报错:
[INFO] Compilation failure
/home/admin/projects/push/hsf/impl/Actions.java:[1,0] illegal character: \65279
结果查了很久资料,才发现是因为:
这个java文件定义的格式是utf-8的,在windows下编辑时保存为utf-8编码,上传到linux下编译出错
原因:
windows对UTF-8文件进行了特殊处理,即对UTF-8的文本文件自动在前面加了三个byte(EF BB BF);javac编译时,读到最前面这三个byte时报错 illegal character: \65279
unix/linux 下标准的UTF-8文件无此三个byte
解决方式:16进制文本编辑工具删掉文件头附加的byte即可
具体可以查看:
本文介绍了一个关于使用UltraEdit编辑并保存为UTF-8格式的Java文件,在Linux环境下进行编译时出现非法字符错误的问题。文章详细解释了错误产生的原因在于Windows系统对UTF-8文件自动添加的BOM标志,并提供了具体的解决方法。
9910

被折叠的 条评论
为什么被折叠?



