NetBeans到Eclipse,字符串比较结果随着从字符串中删除破折号而更改

问题描述 投票:0回答:1

以前在Netbeans中运行文件加载并获取String条目以进行比较产生了可预测的结果:

(过度简化以解决问题的核心。)文件1:UTF-8编码文件2:ISO-8859-1编码

NETBEANS

String strFromFile1 = "A - B"; String strFromFile2 = "A - B";

(strFromFile1 == strFromFile2)评估为true。

但是,在将项目移动到Eclipse之后,我注意到有时字符串值会发生变化,并且仅针对我的许多文件之一,有时会删除短划线( - ),没有可辨别的模式:

日食

String strFromFile1 = "A B"; String strFromFile2 = "A - B";

(strFromFile1 == strFromFile2)评估为false。

比较是正确的,但为什么第一个字符串会改变?源文本文件没有更改。他们都包含破折号。但是,每个文件的字符编码是不同的。

为什么会这样?为什么Eclipse选择忽略特定文件中的某些字符?具有相同编码类型(ISO-8859-1,UTF-8)的其他文件未遇到此问题。

eclipse netbeans character-encoding
1个回答
0
投票

我怀疑这个问题与NetBeans vs Eclipse环境字符编码有关。

但是,将运行配置更改为运行方式>其他>编码> UTF-8,对此问题没有影响。

必须在常规级别更改Eclipse中的设置:

窗口>首选项>文本文件编码>其他> UTF-8

更改此设置后,问题得到解决,并且所有使用字符串比较的测试都按预期传递(就像在迁移到Eclipse之前一样在NetBeans中)。

© www.soinside.com 2019 - 2024. All rights reserved.