【发布时间】:2016-08-18 02:55:52
【问题描述】:
我正在尝试编译位于以下位置的 3 个 java 文件: /var/www/PhpProject2/Solutions/5/9/1/ 在我的电脑(Linux Ubuntu)上。
我在 shell 中使用了以下命令: javac /var/www/PhpProject2/Solutions/5/9/1/*.java
它会输出 100 个如下所示的错误:
错误:用于编码 UTF8 的不可映射字符 合并排序(arr); // ���� �� ����� ������ ��� ������ ���
箭头指向其中一个符号。
这对我来说是新的,因为据我所知,编译会删除我代码中的所有 cmets,而不是将它们视为错误。
到目前为止我所尝试的:
将命令更改为:javac -encoding UTF-8 /var/www/PhpProject2/Solutions/5/9/1/*.java
查找文件编码: 文件 -bi /var/www/PhpProject2/Solutions/5/9/1/UnionIntervals.java
然后我尝试了: javac -编码文本/x-c++; charset=iso-8859-1 /var/www/PhpProject2/Solutions/5/9/1/*.java
都以同样的错误告终。
【问题讨论】:
-
尝试
hexdump -C检查编译器抱怨的位置之一的文件中的实际内容。 -
您的问题可能与此类似:stackoverflow.com/questions/4995057/…
-
@MichaelMarkidis 我之前读过这个。它是通过重新保存文件来解决的,所以实际上根本没有问题,如果有的话,它在实际代码中 - 而不是在 cmets就像我的情况一样。
-
@Markus ,在这种情况下,它是外语中的一个简单字符。无论如何这应该没有效果,因为它在评论中
-
评论中的事实无关紧要。错误来自输入例程,而不是语法分析器。从其字符集的角度来看,该文件的格式不正确。
javac与任何其他程序一样有权投诉。
标签: java shell encoding compilation javac