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

时间:2016-10-26 19:13:00

标签: eclipse netbeans character-encoding

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

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

NETBEANS

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

(strFromFile1 == strFromFile2)评估为true。

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

ECLIPSE

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

(strFromFile1 == strFromFile2)评估为false。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

窗口>偏好>文本文件编码>其他> UTF-8

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