【发布时间】:2013-08-17 14:34:52
【问题描述】:
我有一个 maven 项目,在我的父 pom 中字符编码设置为 UTF-8。
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
但在 Java 文件中,使用了一些字符,如 ` or,这对我造成了编译错误。
在Eclipse(属性----资源-----文本文件编码和Windows--首选项---工作区---文本文件编码)中,我已将编码指定为UTF-8。请让我知道如何解决此问题。
执行转换的 PERL 代码
use strict;
use warnings;
use File::Find;
use open qw/:std :utf8/;
my $dir = "D:\\files";
find({ wanted => \&collectFiles}, "$dir");
sub collectFiles {
my $filename = $_;
if($filename =~ /.java$/){
#print $filename."\n";
startConversion($filename);
}
}
sub startConversion{
my $filename = $_;
print $filename."\n";
open(my $INFILE, '<:encoding(cp1252)', $filename) or die $!;
open(my $OUTFILE, '>:encoding(UTF-8)', $filename) or die $!;
}
【问题讨论】:
-
您是否检查过导致异常的文件确实是 UTF-8 编码的?
-
请注意,我的项目中存在 3000 个 java 文件,因此手动访问每个文件并将其保存为 utf 编码不是正确的方法。有没有 perl 脚本可以解决这个问题
-
在问题中发布该代码,然后用 Perl 重新标记它。您在问为什么 perl 脚本不起作用。这与 Java 关系不大。
-
` 是有效的 ASCII/UTF-8,因此您可能需要在别处查找问题字符。您为什么不直接计算出您的文件使用什么字符编码并将其设置为 Eclipse 中的编码类型。您的 pom.xml 可以保持定义为 UTF-8,因为我怀疑它是否包含任何非 ASCII 字符
-
“它给我造成了编译错误”并不是一个很好的问题描述。什么错误,对于初学者?
标签: java perl maven utf8-decode