经常会遇到在linux和windows平台之间共享文件时,中文出现乱码的情况,原因在于这两个平台的默认编码方式不一样:
Windows default : GBK
Linux default : UTF-8
所以,默认情况下,一份文件的解析首先是按照本操作系统的默认编码方式进行。当将Windows环境下编辑的文档放到Linux系统中打开,会将原来按照GBK方式编码的文档按照UTF-8的编码方式进行解析,导致乱码的出现。
现象:
当在Linux上用ant进行构建项目时,输出信息中提示源文件某行出现乱码,构建失败,查看源文件发现该行有中文存在。
原因:
编码方式不一致。比如,该项目是在windows环境下编写的,编码方式是GBK,现在需要在Linux环境下编译运行,默认以utf-8编码方式读取。
解决方案:
在build.xml中的javac标签中添加encoding属性值,如下所示
<javac ......... encoding="GBK">
.....
</javac>
其中encoding="GBK"表示javac在读取源文件进行编译时,按照GBK(原文件的实际编码方式)编码进行读取
外链:
ant的build.xml文件中<javac....../>属性详细介绍参见链接:https://ant.apache.org/manual/Tasks/javac.html