NetBeans到Eclipse,字符串比较结果被改变,从字符串中删除破折号



先前在Netbeans中运行文件加载并抓取字符串条目进行比较产生可预测的结果:

(过度简化而触及问题的核心。)文件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)没有遇到此问题。

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

然而,将运行配置更改为Run As> Other> Encoding> UTF-8,对问题没有影响。

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

Window> Preferences> Text File Encoding> Other> UTF-8

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

相关内容

  • 没有找到相关文章

最新更新