commons-lang和commons-lang3之间不一致的StringEscapeUtils.escapeHtml / escapeHtml4

时间:2019-05-24 16:09:14

标签: java apache-commons-lang apache-commons-lang3

单元测试显示StringEscapeUtils.escapeHtml / escapeHtml4不会产生相同的结果。

试图将commons-lang(2.6)升级到commons-lang3(3.9),并在escapeHtml / escapeHtml4方法中发现奇偶校验不匹配。

for (String s : Stream.generate(()-> RandomStringUtils.random(100)).limit(100).toArray(String[]::new)) {
    String oldVersion =
        org.apache.commons.lang.StringEscapeUtils.escapeHtml(s);

    String newVersion =
        org.apache.commons.lang3.StringEscapeUtils.escapeHtml4(s);

    Assertions.assertEquals(oldVersion, newVersion);
}

我希望commons-lang3 StringEscapeUtils.escapeHtml4()会产生与commons-lang StringEscapeUtils.escapeHtml()相同的结果。理所当然的是,该测试已超出整个unicode范围,但仍然...

org.opentest4j.AssertionFailedError: 
Expected :靂ᬧ뒼뽼㞛⼁寺ǐ弬澳��ﮒᜑ揢䈤ꮚ耳ᣛ泐䪶��늁㠌鋊劂荃❊��단ꂎ櫼㔀䯼絹䲼뎱뽚템☉钆쪄൒䷗㪨��鑺巉Ὄ䱒헓꧿㡕퟼㦰▬䟀⨈ꕓ⇊삗Շ㘵ᐟ蚳��➺컏풎쬴徊풫ᶒ咼芸ᘞ记ᣎἪ꣏陘ґ耚䂊녊ᵙ雜
Actual   :靂ᬧ뒼뽼㞛⼁寺ǐ弬澳ﮒᜑ揢䈤ꮚ耳ᣛ泐䪶늁㠌鋊劂荃❊단ꂎ櫼㔀䯼絹䲼뎱뽚템☉钆쪄൒䷗㪨鑺巉Ὄ䱒헓꧿㡕퟼㦰▬䟀⨈ꕓ⇊삗Շ㘵ᐟ蚳➺컏풎쬴徊풫ᶒ咼芸ᘞ记ᣎἪ꣏陘ґ耚䂊녊ᵙ雜

这些字符是否不再在HTML4中转义?这不取决于您的编码吗?在这方面是否有办法迫使commons-lang3表现得像commons-lang?

0 个答案:

没有答案