gpt4 book ai didi

java - 为什么 maven 给我的 utf-8 字符与 eclipse 不同(在 eclipse 中测试运行,在 maven 中失败)?

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:24 26 4
gpt4 key购买 nike

我当前的项目与解析自然语言有关。一项测试从文件中读取文本,删除某些字符,并将文本标记为单个单词。该测试实际上比较了独特单词的数量。在 eclipse 中,这个测试是“绿色的”,在 maven 中,我得到的单词数量比预期的要多。比较单词列表,我看到以下附加单词:

  • 收购方⊙s
  • 卡片⊙s
  • 机构⊙
  • 发行人⊙s
  • 提供者⊙s
  • psam⊙s
  • ⊜来自⊝
  • ⊜插槽⊝
  • ⊜到⊝

查看文本源,它包含以下应过滤掉的字符:“” ’

这在 eclipse 中有效,但在 maven 中无效。我正在使用 utf-8。这些文件似乎已正确编码,在 maven pom 中我指定了以下内容:

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.apache.lucene.version>3.6.0</org.apache.lucene.version>
</properties>

编辑:这是读取文件的代码(根据 eclipse,它被编码为 UTF-8)。

        BufferedReader reader = new BufferedReader(
new FileReader(this.file));
String line = "";
while ((line = reader.readLine()) != null) {
// the csv contains a text and a classification
String[] reqCatType = line.split(";");
String reqText = reqCatType[0].trim();
String reqCategory = reqCatType[1].trim();
// the tokenizer also removes unwanted characters:
String[] sentence = this.filter.filterStopWords(this.tokenizer
.tokenize(reqText));
// we use this data to train a machine learning algorithm
this.dataSet.learn(sentence, reqCategory);
}
reader.close();

编辑:以下信息可能对分析问题有用:

mvn -v
Apache Maven 3.0.3 (r1075438; 2011-02-28 09:31:09-0800)
Maven home: /usr/share/maven
Java version: 1.6.0_33, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.6.8", arch: "x86_64", family: "mac"

最佳答案

因此,您的数据文件是 UTF-8 格式的。该文件上的 Eclipse 设置没有影响,因为正在运行的 Java 程序将是解释其含义的指令。

FileReader 总是使用平台默认编码,这通常不是一个好主意。 Eclipse 可能会为您设置“platorm default”,而 Maven 则不会。

修复您的代码以指定编码。

参见 JavaDoc:

To specify these values yourself, construct an InputStreamReader on a FileInputStream.

关于java - 为什么 maven 给我的 utf-8 字符与 eclipse 不同(在 eclipse 中测试运行,在 maven 中失败)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12272698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com